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

Python中PyQt5/PySide2的按鈕控件使用實例

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

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

  • 按鈕控件;
  • 文本輸入控件;
  • 單選控件;
  • 文本標簽控件;
  • 多選控件;
  • 列表控件;

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

文章目錄

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

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

在PyQt5/PySide2中,按鈕控件名為QPushButton(),其位于QtWidgets子模塊之下。在創(chuàng)建按鈕控件之前,我們先來創(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) # 設置窗口固定大小
  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_())

運行上述代碼,我們會得到一個如下圖所示的圖形界面窗口,如下圖所示:

 

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

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

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) # 設置窗口固定大小
  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_())

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

 

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

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

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) # 設置窗口固定大小
  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_())

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

 

二、設置按鈕控件

設置按鈕文本

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

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

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

 

設置按鈕圖標

除了設置文本,我們還能在按鈕中設置一個圖標,使用其setIcon()方法,對其傳入一個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) # 設置窗口固定大小
  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") # 實例化一個QIcon對象
  self.btn_3.setIcon(icon_img) # 設置按鈕的圖標

  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,然后實例化了一個QIcon()對象,最后調用setIcon()方法,參數為剛剛實例化的QIcon()對象。運行上述代碼,我們可以看到,按鈕3上有一個圖標,如下圖所示:

 

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

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

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) # 設置窗口固定大小
  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") # 實例化一個QIcon對象
  self.btn_3.setIcon(icon_img) # 設置按鈕的圖標

  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_())

運行上述代碼,可以發(fā)現主窗口中的按鈕1的顏色不一樣了,因為其已經不能點擊了,如下圖所示:

 

設置按鈕的大小

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

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

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

 

三、獲取按鈕控件的點擊事件

對于按鈕來說,最常見的還是點擊事件,在PyQt5和PySide2中,已經內置了點擊事件,我們可以直接對其進行調用,代碼如下所示:

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) # 設置窗口固定大小
  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") # 實例化一個QIcon對象
  self.btn_3.setIcon(icon_img) # 設置按鈕的圖標
  self.btn_3.setFixedSize(80,80) # 設置按鈕的固定大小
  self.btn_3.clicked.connect(self.clicks) # 連接點擊信號到響應方法

  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)

 # 點擊響應方法
 def clicks(self):
  print("點擊了按鈕")

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

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

 

四、最后

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

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

相關文章

  • python實現AdaBoost算法的示例

    python實現AdaBoost算法的示例

    這篇文章主要介紹了python實現AdaBoost算法的示例,幫助大家更好的理解和了解機器學習算法,感興趣的朋友可以了解下
    2020-10-10
  • Python Numpy中數據的常用保存與讀取方法

    Python Numpy中數據的常用保存與讀取方法

    這篇文章主要介紹了Python Numpy中數據的常用保存與讀取方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南

    Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南

    這篇文章主要為大家介紹了Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Django choices下拉列表綁定實例

    Django choices下拉列表綁定實例

    這篇文章主要介紹了Django choices下拉列表綁定實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python圖像濾波處理操作示例【基于ImageFilter類】

    Python圖像濾波處理操作示例【基于ImageFilter類】

    這篇文章主要介紹了Python圖像濾波處理操作,結合實例形式分析了Python基于ImageFilter類實現的濾波處理相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • 解決sublime+python3無法輸出中文的問題

    解決sublime+python3無法輸出中文的問題

    今天小編就為大家分享一篇解決sublime+python3無法輸出中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 教大家玩轉Python字符串處理的七種技巧

    教大家玩轉Python字符串處理的七種技巧

    這篇文章主要給大家介紹了關于學會Python字符串處理的七種技巧,其中包括字符串的連接和合并、字符串的切片和相乘、字符串的分割、字符串的開頭和結尾的處理、字符串的查找和匹配、字符串的替換以及字符串中去掉一些字符等操作,需要的朋友可以參考。
    2017-03-03
  • Python中字符串與編碼示例代碼

    Python中字符串與編碼示例代碼

    這篇文章主要介紹了Python中字符串與編碼示例代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Python使用gRPC傳輸協(xié)議教程

    Python使用gRPC傳輸協(xié)議教程

    今天小編就為大家分享一篇關于Python使用gRPC傳輸協(xié)議教程,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Pygame庫200行代碼實現簡易飛機大戰(zhàn)

    Pygame庫200行代碼實現簡易飛機大戰(zhàn)

    本文主要介紹了Pygame庫200行代碼實現簡易飛機大戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論