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

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

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

PyQt5切換按鈕控件QPushButton簡介

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

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

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

QAbstractButton提供的信號如下表

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

QPUshButton類中的常用方法

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

為QPushButton設置快捷鍵

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

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

QPushButton按鈕的使用實例

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():設置按鈕是否已經(jīng)被選中,如果為True,則表示按鈕將保持已點擊和釋放狀態(tài)
    self.btn1.setCheckable(True)
    #toggle():在按鈕狀態(tài)之間進行切換
    self.btn1.toggle()
    #點擊信號與槽函數(shù)進行連接,這一步實現(xiàn):在控制臺輸出被點擊的按鈕
    self.btn1.clicked.connect(lambda :self.whichbtn(self.btn1))
    #點擊信號與槽函數(shù)進行連接,實現(xiàn)的目的:輸入安妞的當前狀態(tài),按下還是釋放
    self.btn1.clicked.connect(self.btnstate)

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

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

    layout.addWidget(self.btn2)

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

    layout.addWidget(self.btn3)

    #創(chuàng)建按鈕并添加快捷鍵
    self.btn4=QPushButton('&Download')
    #setDefault():設置按鈕的默認狀態(tài)
    self.btn4.setDefault(True)
    ##點擊信號與槽函數(shù)進行連接,這一步實現(xià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):
    #輸出被點擊的按鈕
    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對象被定義為類的實例變量,每個按鈕都將clicked的信號發(fā)送給指定的槽函數(shù),來響應按鈕點擊的事件

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

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

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

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

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

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

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

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

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

self.btn3.setEnabled(False)

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

self.btn4=QPushButton('&Download')

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

相關文章

  • Python開發(fā)畢設案例之桌面學生信息管理程序

    Python開發(fā)畢設案例之桌面學生信息管理程序

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

    Python 短視頻爬蟲教程

    今天給大家?guī)硪黄老x小教程,很簡單的幾十行代碼就可以實現(xiàn)了,爬取的目標是短視頻,感興趣的同學快來跟著小編往下看吧
    2021-11-11
  • 關于你不想知道的所有Python3 unicode特性

    關于你不想知道的所有Python3 unicode特性

    我的讀者知道我是一個喜歡痛罵Python3 unicode的人。這次也不例外。我將會告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時間研究Python3,我需要發(fā)泄我的失望。在這些責罵中,仍然有有用的信息,因為它教我們?nèi)绾蝸硖幚鞵ython3。如果沒有被我煩到,就讀一讀吧
    2014-11-11
  • Python3爬蟲之urllib攜帶cookie爬取網(wǎng)頁的方法

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

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

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

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

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

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

    在Linux下使用命令行安裝Python

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

    詳解python運行三種方式

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

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

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

    聊聊python的gin庫的介紹和使用

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

最新評論