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

Python中PyQt5/PySide2的按鈕控件使用實(shí)例

 更新時(shí)間:2019年08月17日 14:11:49   作者:州先生  
這篇文章主要介紹了PyQt5/PySide2的按鈕控件使用實(shí)例,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在之前的文章中,我們介紹了PyQt5和PySide2中主窗口控件MainWindow的使用、窗口控件的4中基礎(chǔ)布局管理。從本篇開始,我們來了解一下PyQt5和PySide2中基礎(chǔ)控件的使用,其中包括:

  • 按鈕控件;
  • 文本輸入控件;
  • 單選控件;
  • 文本標(biāo)簽控件;
  • 多選控件;
  • 列表控件;

等圖形界面開發(fā)中常用的控件,今天我們來介紹按鈕控件。

文章目錄

  • 直接實(shí)例化一個(gè)帶文本的按鈕控件
  • 不帶參數(shù)創(chuàng)建的按鈕控件
  • 三、獲取按鈕控件的點(diǎn)擊事件

一、創(chuàng)建一個(gè)按鈕控件

在PyQt5/PySide2中,按鈕控件名為QPushButton(),其位于QtWidgets子模塊之下。在創(chuàng)建按鈕控件之前,我們先來創(chuàng)建一個(gè)包含布局層的圖形界面主窗口,作為按鈕控件的容器,代碼如下所示: 

# coding:utf-8
from PyQt5 import QtWidgets
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500,200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)

  self.setCentralWidget(self.main_widget)

if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

運(yùn)行上述代碼,我們會得到一個(gè)如下圖所示的圖形界面窗口,如下圖所示:

 

我們使用setFixedSize()方法設(shè)置了窗口的固定大小,然后設(shè)置了窗口內(nèi)控件的布局為垂直布局。下面,我們往里面添加按鈕控件。

直接實(shí)例化一個(gè)帶文本的按鈕控件
我們可以直接實(shí)例化一個(gè)帶字符串參數(shù)的QPushButton()來創(chuàng)建一個(gè)按鈕,例如:

self.btn_1 = QtWidgets.QPushButton("按鈕一")

我們將其添加到上面創(chuàng)建的主窗口中,代碼如下所示:

# coding:utf-8
from PyQt5 import QtWidgets
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500,200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)
  
  self.btn_1 = QtWidgets.QPushButton("按鈕一")
  self.main_layout.addWidget(self.btn_1)

  self.setCentralWidget(self.main_widget)

if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

運(yùn)行上述代碼,可以得到一個(gè)帶有一個(gè)按鈕的主窗口圖形,如下圖所示:

 

不帶參數(shù)創(chuàng)建的按鈕控件

如果我們不帶字符串參數(shù)給QPushButton(),創(chuàng)建的就是一個(gè)空白的按鈕,代碼如下所示:

from PyQt5 import QtWidgets
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500, 200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)

  self.btn_1 = QtWidgets.QPushButton("按鈕一")
  self.btn_2 = QtWidgets.QPushButton()
  self.main_layout.addWidget(self.btn_1)
  self.main_layout.addWidget(self.btn_2)
  self.setCentralWidget(self.main_widget)
if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

運(yùn)行上述代碼,我們會得到一個(gè)含有兩個(gè)按鈕的圖形界面窗口,如下圖所示:

 

二、設(shè)置按鈕控件

設(shè)置按鈕文本

按鈕創(chuàng)建之后,我們可以對其進(jìn)行設(shè)置,比如上面創(chuàng)建的空白按鈕,借助其setText()方法,可以設(shè)置按鈕上的文本,代碼如下所示:

self.btn_2.setText("按鈕二")

將其添加到第二個(gè)按鈕的創(chuàng)建代碼之下,運(yùn)行新的代碼,可以看到,主窗口中的第二個(gè)按鈕上已經(jīng)有了文字,如下圖所示:

 

設(shè)置按鈕圖標(biāo)

除了設(shè)置文本,我們還能在按鈕中設(shè)置一個(gè)圖標(biāo),使用其setIcon()方法,對其傳入一個(gè)QIcon()對象,代碼如下所示:

from PyQt5 import QtWidgets,QtGui
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500, 200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)

  self.btn_1 = QtWidgets.QPushButton("按鈕一")
  self.btn_2 = QtWidgets.QPushButton()
  self.btn_2.setText("按鈕二")
  self.btn_3 = QtWidgets.QPushButton("按鈕三") # 創(chuàng)建按鈕3
  icon_img = QtGui.QIcon("./icon.png") # 實(shí)例化一個(gè)QIcon對象
  self.btn_3.setIcon(icon_img) # 設(shè)置按鈕的圖標(biāo)

  self.main_layout.addWidget(self.btn_1)
  self.main_layout.addWidget(self.btn_2)
  self.main_layout.addWidget(self.btn_3)

  self.setCentralWidget(self.main_widget)

if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

在上面的代碼中,我們創(chuàng)建了按鈕3,然后實(shí)例化了一個(gè)QIcon()對象,最后調(diào)用setIcon()方法,參數(shù)為剛剛實(shí)例化的QIcon()對象。運(yùn)行上述代碼,我們可以看到,按鈕3上有一個(gè)圖標(biāo),如下圖所示:

 

設(shè)置按鈕的狀態(tài)

除此之外,我們可以通過setEnabled()方法,設(shè)置按鈕的狀態(tài),傳入值為True時(shí),表示按鈕可用,傳入值為False時(shí),表示按鈕禁用,代碼如下所示:

from PyQt5 import QtWidgets,QtGui
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500, 200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)

  self.btn_1 = QtWidgets.QPushButton("按鈕一")
  self.btn_1.setEnabled(False)

  self.btn_2 = QtWidgets.QPushButton()
  self.btn_2.setText("按鈕二")

  self.btn_3 = QtWidgets.QPushButton("按鈕三") # 創(chuàng)建按鈕3
  icon_img = QtGui.QIcon("./icon.png") # 實(shí)例化一個(gè)QIcon對象
  self.btn_3.setIcon(icon_img) # 設(shè)置按鈕的圖標(biāo)

  self.main_layout.addWidget(self.btn_1)
  self.main_layout.addWidget(self.btn_2)
  self.main_layout.addWidget(self.btn_3)

  self.setCentralWidget(self.main_widget)

if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

運(yùn)行上述代碼,可以發(fā)現(xiàn)主窗口中的按鈕1的顏色不一樣了,因?yàn)槠湟呀?jīng)不能點(diǎn)擊了,如下圖所示:

 

設(shè)置按鈕的大小

如同我們在主窗口中使用setFixedSize()方法設(shè)置主窗口的窗口大小,我們可以使用這個(gè)方法設(shè)置按鈕的固定大小,代碼如下所示:

self.btn_3.setFixedSize(80,80) # 設(shè)置按鈕的固定大小

最后運(yùn)行代碼,我們可以發(fā)現(xiàn),主窗口中的按鈕3的形狀已經(jīng)變了,如下圖所示:

 

三、獲取按鈕控件的點(diǎn)擊事件

對于按鈕來說,最常見的還是點(diǎn)擊事件,在PyQt5和PySide2中,已經(jīng)內(nèi)置了點(diǎn)擊事件,我們可以直接對其進(jìn)行調(diào)用,代碼如下所示:

from PyQt5 import QtWidgets,QtGui
import sys

class ButtonApp(QtWidgets.QMainWindow):
 def __init__(self):
  '''
  州的先生 https://zmister.com
  '''
  super().__init__()
  self.setWindowTitle("Qt For Python按鈕控件 | 州的先生")
  self.setFixedSize(500, 200) # 設(shè)置窗口固定大小
  self.main_widget = QtWidgets.QWidget()
  self.main_layout = QtWidgets.QVBoxLayout()
  self.main_widget.setLayout(self.main_layout)

  self.btn_1 = QtWidgets.QPushButton("按鈕一")
  self.btn_1.setEnabled(False)

  self.btn_2 = QtWidgets.QPushButton()
  self.btn_2.setText("按鈕二")

  self.btn_3 = QtWidgets.QPushButton("按鈕三") # 創(chuàng)建按鈕3
  icon_img = QtGui.QIcon("./icon.png") # 實(shí)例化一個(gè)QIcon對象
  self.btn_3.setIcon(icon_img) # 設(shè)置按鈕的圖標(biāo)
  self.btn_3.setFixedSize(80,80) # 設(shè)置按鈕的固定大小
  self.btn_3.clicked.connect(self.clicks) # 連接點(diǎn)擊信號到響應(yīng)方法

  self.main_layout.addWidget(self.btn_1)
  self.main_layout.addWidget(self.btn_2)
  self.main_layout.addWidget(self.btn_3)

  self.setCentralWidget(self.main_widget)

 # 點(diǎn)擊響應(yīng)方法
 def clicks(self):
  print("點(diǎn)擊了按鈕")

if __name__ == '__main__':
 app = QtWidgets.QApplication(sys.argv)
 gui = ButtonApp()
 gui.show()
 sys.exit(app.exec_())

在上述代碼中,我們新建了一個(gè)名為clicks()的方法,里面用來print(),然后使用按鈕3的clicked信號連接到clicks()方法上,最后當(dāng)我們點(diǎn)擊按鈕3的時(shí)候,控制臺就會打印出字符串來,如下動圖所示:

 

四、最后

除了上面所介紹到的使用方法之外,QPushButton()還有很多高級的用法,這些在下面的文章中會逐步涉及。

以上所述是小編給大家介紹的Python中PyQt5/PySide2的按鈕控件使用實(shí)例,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!

相關(guān)文章

  • 淺談Python的list中的選取范圍

    淺談Python的list中的選取范圍

    今天小編就為大家分享一篇淺談Python的list中的選取范圍,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python中jieba庫的使用方法

    Python中jieba庫的使用方法

    jieba庫是一款優(yōu)秀的 Python 第三方中文分詞庫,本文主要介紹了Python中jieba庫的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • pandas如何獲取某個(gè)數(shù)據(jù)的行號

    pandas如何獲取某個(gè)數(shù)據(jù)的行號

    這篇文章主要介紹了pandas如何獲取某個(gè)數(shù)據(jù)的行號問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法

    python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法

    這篇文章主要介紹了python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法

    numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法

    今天小編就為大家分享一篇numpy.std() 計(jì)算矩陣標(biāo)準(zhǔn)差的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值

    Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值

    本文給大家分享的是Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值的方法,主要是使用for循環(huán)來實(shí)現(xiàn),有需要的小伙伴可以參考下。
    2015-05-05
  • Python?中?yeild?的用法詳解

    Python?中?yeild?的用法詳解

    yield?是?Python?中的關(guān)鍵字,用于生成器函數(shù)中,可以將函數(shù)變成一個(gè)迭代器,實(shí)現(xiàn)惰性計(jì)算,節(jié)省內(nèi)存空間。本文將介紹?yield?的基本用法和實(shí)現(xiàn)原理,以及與?yield?相關(guān)的注意事項(xiàng)和常見問題。
    2023-06-06
  • python實(shí)現(xiàn)俄羅斯方塊游戲

    python實(shí)現(xiàn)俄羅斯方塊游戲

    這篇文章主要為大家介紹了python實(shí)現(xiàn)俄羅斯方塊游戲的詳細(xì)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python+opencv實(shí)現(xiàn)移動偵測(幀差法)

    python+opencv實(shí)現(xiàn)移動偵測(幀差法)

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)移動偵測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • python web.py開發(fā)httpserver解決跨域問題實(shí)例解析

    python web.py開發(fā)httpserver解決跨域問題實(shí)例解析

    這篇文章主要介紹了python web.py開發(fā)httpserver解決跨域問題實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02

最新評論

荔浦县| 镇雄县| 辉县市| 纳雍县| 叶城县| 江口县| 许昌市| 中牟县| 民丰县| 天等县| 东平县| 辉南县| 临夏县| 尖扎县| 鹿邑县| 蛟河市| 施甸县| 凤阳县| 轮台县| 禄劝| 临桂县| 固原市| 青阳县| 积石山| 林西县| 汉寿县| 肥乡县| 巴中市| 铁岭市| 贵定县| 承德市| 桓台县| 南溪县| 车致| 龙南县| 腾冲县| 绥棱县| 黔南| 金溪县| 潢川县| 巴南区|