欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

PyQt5切換按鈕控件QPushButton簡(jiǎn)介

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

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

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

QAbstractButton提供的信號(hào)如下表

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

QPUshButton類(lèi)中的常用方法

方法 描述
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時(shí),按鈕變成不可用狀態(tài),點(diǎn)擊它不會(huì)發(fā)射信號(hào)
isChecked() 返回按鈕的狀態(tài),返回值為T(mén)rue或者False
setDefault() 設(shè)置按鈕的默認(rèn)狀態(tài)
setText() 設(shè)置按鈕的顯示文本
text() 返回按鈕的顯示文本

為QPushButton設(shè)置快捷鍵

通過(guò)按鈕名字能為QPushButton設(shè)置快捷鍵,比如名字為‘&Download'的按鍵,它的快捷鍵是‘Alt+D'。其規(guī)則是;想要實(shí)現(xiàn)快捷鍵為“Alt+D”,那么按鈕的名字里有D這個(gè)字母,并且在D的前面加上“&”,這個(gè)字母D一般是按鈕名稱的首字母,而且在按鈕顯示時(shí)?!?amp;”不會(huì)顯示出來(lái),如果想顯示,那么需要轉(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)被選中,如果為T(mén)rue,則表示按鈕將保持已點(diǎn)擊和釋放狀態(tài)
    self.btn1.setCheckable(True)
    #toggle():在按鈕狀態(tài)之間進(jìn)行切換
    self.btn1.toggle()
    #點(diǎn)擊信號(hào)與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺(tái)輸出被點(diǎn)擊的按鈕
    self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))
    #點(diǎn)擊信號(hào)與槽函數(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快速開(kāi)發(fā)與實(shí)戰(zhàn)\第四章\images\python.png')))
    ##點(diǎn)擊信號(hào)與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺(tái)輸出被點(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的時(shí)候,按鈕變成不可用狀態(tài),點(diǎn)擊它不會(huì)發(fā)射信號(hào)
    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)擊信號(hào)與槽函數(shù)進(jìn)行連接,這一步實(shí)現(xiàn):在控制臺(tái)輸出被點(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),返回值為T(mén)rue或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代碼分析:

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

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

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

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

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

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

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

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

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

第三個(gè)按鈕btn3,使用setEnabled()方法來(lái)禁用btn3按鈕

self.btn3.setEnabled(False)

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

self.btn4=QPushButton('&Download')

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

相關(guān)文章

  • Python開(kāi)發(fā)畢設(shè)案例之桌面學(xué)生信息管理程序

    Python開(kāi)發(fā)畢設(shè)案例之桌面學(xué)生信息管理程序

    畢業(yè)設(shè)計(jì)必備案例:Python開(kāi)發(fā)桌面程序
    2021-11-11
  • Python 短視頻爬蟲(chóng)教程

    Python 短視頻爬蟲(chóng)教程

    今天給大家?guī)?lái)一篇爬蟲(chóng)小教程,很簡(jiǎn)單的幾十行代碼就可以實(shí)現(xiàn)了,爬取的目標(biāo)是短視頻,感興趣的同學(xué)快來(lái)跟著小編往下看吧
    2021-11-11
  • 關(guān)于你不想知道的所有Python3 unicode特性

    關(guān)于你不想知道的所有Python3 unicode特性

    我的讀者知道我是一個(gè)喜歡痛罵Python3 unicode的人。這次也不例外。我將會(huì)告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時(shí)間研究Python3,我需要發(fā)泄我的失望。在這些責(zé)罵中,仍然有有用的信息,因?yàn)樗涛覀內(nèi)绾蝸?lái)處理Python3。如果沒(méi)有被我煩到,就讀一讀吧
    2014-11-11
  • Python3爬蟲(chóng)之urllib攜帶cookie爬取網(wǎng)頁(yè)的方法

    Python3爬蟲(chóng)之urllib攜帶cookie爬取網(wǎng)頁(yè)的方法

    今天小編就為大家分享一篇Python3爬蟲(chóng)之urllib攜帶cookie爬取網(wǎng)頁(yè)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python 示例分享---邏輯推理編程解決八皇后

    python 示例分享---邏輯推理編程解決八皇后

    八皇后問(wèn)題,是一個(gè)古老而著名的問(wèn)題,是回溯算法的典型案例。該問(wèn)題是國(guó)際西洋棋棋手馬克斯·貝瑟爾于1848年提出:在8X8格的國(guó)際象棋上擺放八個(gè)皇后,使其不能互相攻擊,即任意兩個(gè)皇后都不能處于同一行、同一列或同一斜線上,問(wèn)有多少種擺法。
    2014-07-07
  • Python中的def __init__( )函數(shù)

    Python中的def __init__( )函數(shù)

    這篇文章主要介紹了Python中的def __init__( )函數(shù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • 在Linux下使用命令行安裝Python

    在Linux下使用命令行安裝Python

    這篇文章主要介紹了在Linux下使用命令行安裝Python,通過(guò)詳細(xì)的圖文介紹Linux安裝Python的全部過(guò)程,希望對(duì)你有所幫助
    2021-06-06
  • 詳解python運(yùn)行三種方式

    詳解python運(yùn)行三種方式

    這篇文章主要介紹了python運(yùn)行三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • tensorflow實(shí)現(xiàn)邏輯回歸模型

    tensorflow實(shí)現(xiàn)邏輯回歸模型

    這篇文章主要為大家詳細(xì)介紹了tensorflow實(shí)現(xiàn)邏輯回歸模型的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 聊聊python的gin庫(kù)的介紹和使用

    聊聊python的gin庫(kù)的介紹和使用

    gin像一個(gè)封裝了參數(shù)配置的類(lèi),使用這個(gè)類(lèi)將使得大量的參數(shù)配置變得簡(jiǎn)單清晰,本文重點(diǎn)給大家介紹python的gin庫(kù)的介紹和使用,感興趣的朋友跟隨小編一起看看吧
    2021-04-04

最新評(píng)論