最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python GUI庫圖形界面開發(fā)之PyQt5切換按鈕控件QPushButton詳細(xì)使用方法與實(shí)例

 更新時間:2020年02月28日 15:48:24   作者:jia666666  
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5切換按鈕控件QPushButton詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下

PyQt5切換按鈕控件QPushButton簡介

QAbstractButton類為抽象類,不能實(shí)例化,必須由其他的按鈕類繼承QAbstractButton類,來實(shí)現(xiàn)不同的功能和表現(xiàn)形式,常見的按鈕QPushButton,QToolButton,QRadioButton和QCheckBox這些按鈕均繼承自QAbstractButton類,根據(jù)各自的使用場景通過圖形顯示出來

QAbstractButton提供的狀態(tài)如下表

狀態(tài) 含義
isDown() 提示按鈕是否已按下
isChecked() 提示按鈕是否已經(jīng)標(biāo)記
isEnable() 提示按鈕是否可以被用戶點(diǎn)擊
isCheckAble() 提示按鈕是否為可標(biāo)記的
setAutoRepeat() 設(shè)置按鈕是否在用戶長按時可以自動重復(fù)執(zhí)行

QAbstractButton提供的信號如下表

信號 含義
Pressed 當(dāng)鼠標(biāo)指針在按鈕上并按下左鍵時觸發(fā)該信號
Released 當(dāng)鼠標(biāo)左鍵被釋放時觸發(fā)該信號
Clicked 當(dāng)鼠標(biāo)左鍵被按下然后釋放時,或者快捷鍵被釋放時觸發(fā)該信號
Toggled 當(dāng)按鈕的標(biāo)記狀態(tài)發(fā)生改變時觸發(fā)該信號

QPUshButton類中的常用方法

方法 描述
setCheckable() 設(shè)置按鈕是否已經(jīng)被選中,如果設(shè)置True,則表示按鈕將保持已點(diǎn)擊和釋放狀態(tài)
toggle() 在按鈕狀態(tài)之間進(jìn)行切換
setIcon() 設(shè)置按鈕上的圖標(biāo)
setEnabled() 設(shè)置按鈕是否可以使用,當(dāng)設(shè)置為False時,按鈕變成不可用狀態(tài),點(diǎn)擊它不會發(fā)射信號
isChecked() 返回按鈕的狀態(tài),返回值為True或者False
setDefault() 設(shè)置按鈕的默認(rèn)狀態(tài)
setText() 設(shè)置按鈕的顯示文本
text() 返回按鈕的顯示文本

為QPushButton設(shè)置快捷鍵

通過按鈕名字能為QPushButton設(shè)置快捷鍵,比如名字為‘&Download'的按鍵,它的快捷鍵是‘Alt+D'。其規(guī)則是;想要實(shí)現(xiàn)快捷鍵為“Alt+D”,那么按鈕的名字里有D這個字母,并且在D的前面加上“&”,這個字母D一般是按鈕名稱的首字母,而且在按鈕顯示時。“&”不會顯示出來,如果想顯示,那么需要轉(zhuǎn)義,核心代碼如下

self.btn4=QPushButton('&Download')
self.btn4.setDefault(True)

QPushButton按鈕的使用實(shí)例

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Form(QDialog):
  def __init__(self,parent=None):
    super(Form, self).__init__(parent)

    #垂直布局
    layout=QVBoxLayout()

    #創(chuàng)建按鈕1
    self.btn1=QPushButton('Button1')
    #setCheckable():設(shè)置按鈕是否已經(jīng)被選中,如果為True,則表示按鈕將保持已點(diǎn)擊和釋放狀態(tài)
    self.btn1.setCheckable(True)
    #toggle():在按鈕狀態(tài)之間進(jìn)行切換
    self.btn1.toggle()
    #點(diǎn)擊信號與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺輸出被點(diǎn)擊的按鈕
    self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))
    #點(diǎn)擊信號與槽函數(shù)進(jìn)行連接,實(shí)現(xiàn)的目的:輸入安妞的當(dāng)前狀態(tài),按下還是釋放
    self.btn1.clicked.connect(self.btnstate)

    #添加控件到布局中
    layout.addWidget(self.btn1)

    #創(chuàng)建按鈕2
    self.btn2=QPushButton('image')
    #為按鈕2添加圖標(biāo)
    self.btn2.setIcon(QIcon(QPixmap('E:\pyqt5快速開發(fā)與實(shí)戰(zhàn)\第四章\images\python.png')))
    ##點(diǎn)擊信號與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺輸出被點(diǎn)擊的按鈕
    self.btn2.clicked.connect(lambda :self.whichbtn(self.btn2))

    layout.addWidget(self.btn2)

    self.btn3=QPushButton('Disabled')
    #setEnabled()設(shè)置按鈕是否可以使用,當(dāng)設(shè)置為False的時候,按鈕變成不可用狀態(tài),點(diǎn)擊它不會發(fā)射信號
    self.btn3.setEnabled(False)

    layout.addWidget(self.btn3)

    #創(chuàng)建按鈕并添加快捷鍵
    self.btn4=QPushButton('&Download')
    #setDefault():設(shè)置按鈕的默認(rèn)狀態(tài)
    self.btn4.setDefault(True)
    ##點(diǎn)擊信號與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺輸出被點(diǎn)擊的按鈕
    self.btn4.clicked.connect(lambda :self.whichbtn(self.btn4))

    layout.addWidget(self.btn4)

    self.setWindowTitle("Button demo")
    self.setLayout(layout)

  def btnstate(self):
    #isChecked():判斷按鈕的狀態(tài),返回值為True或False
    if self.btn1.isChecked():
      print('button pressed')
    else:
      print('button released')

  def whichbtn(self,btn):
    #輸出被點(diǎn)擊的按鈕
    print('clicked button is '+btn.text())
if __name__ == '__main__':
  app=QApplication(sys.argv)
  btnDemo=Form()
  btnDemo.show()
  sys.exit(app.exec_())

效果圖如下

QPushButton代碼分析:

在這個例子中,創(chuàng)建了四個按鈕,這四個QPushButton對象被定義為類的實(shí)例變量,每個按鈕都將clicked的信號發(fā)送給指定的槽函數(shù),來響應(yīng)按鈕點(diǎn)擊的事件

第一個按鈕btn1,**通過toggle()函數(shù)來切換按鈕的狀態(tài),其核心代碼是

self.btn1=QPushButton('Button1')
self.btn1.setCheckable(True)
self.btn1.toggle()

當(dāng)這個按鈕點(diǎn)擊時,將clicked信號發(fā)送給槽函數(shù)btnstate(),通過btn.isChecked來獲得按鈕是否被點(diǎn)擊或者釋放的狀態(tài),其核心代碼是

self.btn1.clicked.connect(self.btnstate)

還可以通過lambda表達(dá)式來傳遞額外的參數(shù)btn1,將clicked信號發(fā)送給槽函數(shù)whichbtn(),其核心代碼

self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))

第二個按鈕btn2,上面顯示一個圖標(biāo),使用setIcon()方法接受一個QPixmap對象的圖像文件作為輸入?yún)?shù),其核心代碼是

self.btn2.setIcon(QIcon(QPixmap('E:\pyqt5快速開發(fā)與實(shí)戰(zhàn)\第四章\images\python.png')))

第三個按鈕btn3,使用setEnabled()方法來禁用btn3按鈕

self.btn3.setEnabled(False)

第四個按鈕btn4,使用setDefault()方法·來設(shè)置按鈕的默認(rèn)狀態(tài)??旖萱I是‘&+文本'(&Download),通過‘Alt+D'快捷鍵來調(diào)用槽函數(shù)

self.btn4=QPushButton('&Download')

本文主要講解了PyQt5切換按鈕控件QPushButton詳細(xì)使用方法與實(shí)例,更多關(guān)于PyQt5控件教程請查看下面的相關(guān)鏈接

相關(guān)文章

  • 基于Python實(shí)現(xiàn)wifi連接小程序

    基于Python實(shí)現(xiàn)wifi連接小程序

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編程語言編寫一個簡單的連接Wi-Fi的程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 使用Python抓取模板之家的CSS模板

    使用Python抓取模板之家的CSS模板

    本文給大家介紹的是使用Python抓取模板之家的CSS模板并打包成zip文件的代碼,使用的是單線程,非常簡單實(shí)用,這里分享給大家,有相同需求的小伙伴參考下吧。
    2015-03-03
  • 對python 匹配字符串開頭和結(jié)尾的方法詳解

    對python 匹配字符串開頭和結(jié)尾的方法詳解

    今天小編就為大家分享一篇對python 匹配字符串開頭和結(jié)尾的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python中列表list以及l(fā)ist與數(shù)組array的相互轉(zhuǎn)換實(shí)現(xiàn)方法

    Python中列表list以及l(fā)ist與數(shù)組array的相互轉(zhuǎn)換實(shí)現(xiàn)方法

    這篇文章主要介紹了Python中l(wèi)ist以及l(fā)ist與array的相互轉(zhuǎn)換實(shí)現(xiàn)方法,簡單分析了Python中l(wèi)ist的功能、使用方法及l(fā)ist與array相互轉(zhuǎn)換實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • python常見的格式化輸出小結(jié)

    python常見的格式化輸出小結(jié)

    今天在寫代碼的時候,需要統(tǒng)一化輸出格式進(jìn)行,一時想不起竟具體細(xì)節(jié),用了最笨的方法,所以覺得有必要將常見的方法進(jìn)行一個總結(jié)。下面這篇文中就給大家總結(jié)了python中常見的格式化輸出,比如打印字符串、打印整數(shù)和打印浮點(diǎn)數(shù)等,下面來看看詳細(xì)的輸出方法吧。
    2016-12-12
  • Python實(shí)現(xiàn)從文件中加載數(shù)據(jù)的方法詳解

    Python實(shí)現(xiàn)從文件中加載數(shù)據(jù)的方法詳解

    日常工作中有許多類型的文件,以及許多方法,用它們從文件中提取數(shù)據(jù)來圖形化。本文將利用Python實(shí)現(xiàn)從文件中加載數(shù)據(jù),感興趣的可以了解一下
    2022-04-04
  • Python使用MySQLdb for Python操作數(shù)據(jù)庫教程

    Python使用MySQLdb for Python操作數(shù)據(jù)庫教程

    這篇文章主要介紹了Python使用MySQLdb for Python操作數(shù)據(jù)庫教程,詳細(xì)講述了MySQLdb的用法,針對Python操作MySQL數(shù)據(jù)庫程序設(shè)計(jì)具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • Python?HMAC模塊維護(hù)數(shù)據(jù)安全技術(shù)實(shí)例探索

    Python?HMAC模塊維護(hù)數(shù)據(jù)安全技術(shù)實(shí)例探索

    本篇博客將帶領(lǐng)讀者深入探索Python中HMAC模塊的高級應(yīng)用,通過豐富的示例代碼和詳細(xì)的解釋,揭示HMAC在實(shí)際應(yīng)用場景中的多面光芒,從基礎(chǔ)概念到密碼存儲、文件完整性驗(yàn)證、API安全,再到與加密算法的巧妙結(jié)合
    2024-01-01
  • Python venv虛擬環(huán)境跨設(shè)備遷移的實(shí)現(xiàn)

    Python venv虛擬環(huán)境跨設(shè)備遷移的實(shí)現(xiàn)

    本文主要介紹了Python venv虛擬環(huán)境跨設(shè)備遷移的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python腳本實(shí)現(xiàn)監(jiān)聽服務(wù)器的思路代碼詳解

    Python腳本實(shí)現(xiàn)監(jiān)聽服務(wù)器的思路代碼詳解

    這篇文章主要介紹了Python腳本實(shí)現(xiàn)監(jiān)聽服務(wù)器的思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論

桦南县| 拜城县| 山阳县| 隆回县| 康定县| 镇巴县| 西吉县| 仁化县| 阳泉市| 抚州市| 金湖县| 新民市| 新疆| 伽师县| 芜湖市| 扬州市| 淮南市| 南开区| 贵定县| 化州市| 平顺县| 雷山县| 浮山县| 芒康县| 托里县| 札达县| 旺苍县| 高雄县| 呼图壁县| 子长县| 当涂县| 富蕴县| 大田县| 出国| 吉隆县| 龙泉市| 阿拉善右旗| 探索| 澄城县| 甘南县| 吉木乃县|