PySide2基礎篇(三)——QPushButton運用
前言:
閱讀這篇文章我能學到什麼?
按鈕是對話框應用程序常用的控件之一,這篇文章介紹QPushButton按鈕控件的簡單用法,如果你想快速上手就請閱讀這篇文章。
——如果你覺得這是一篇不錯的博文,希望你能給一個小小的贊,感謝您的支持。
1 創建一個按鈕
按鈕是對話框交互過程中最常用的控件之一,PySide2爲我們提供了一個類PushButton
用於生成按鈕。下面我們嘗試示例化它創建一個按鈕控件。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.show()
app.exec_()
運行結果:
給構造函數傳入的字符串"初始文本"
會在按鈕上顯示,若不想顯示任何文本可將參數留空。如果後續想要修改按鈕顯示的文本內容可調用setText()
函數進行文本內容修改。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.setText("修改文本") #修改文本內容
PushButton.show()
app.exec_()
運行結果:
2 給按鈕添加點擊事件
點擊按鈕必然會引起程序執行一些動作,這些動作是由開發者自己定義的,實現形式通常都是利用回調函數形式。在PySide2中有Slot
即插槽的概念,其實就是裝飾器(如果對裝飾器不瞭解的可以參考我的python3高級篇教程,有詳細介紹裝飾器)。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
運行結果:
每次點擊後釋放按鍵都會去調用PressButton
函數,該函數的功能就是打印一串字符串"Hello World"
。
3 個性化按鈕
因爲是基礎篇,這裏只介紹一些基礎的設置。
3.1 給按鈕添加圖標
和QLabel
類似,既可以給按鈕添加像素圖QPixmap
和可以添加圖標QIcon
。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QPixmap
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PixMap = QPixmap(".\png\PushButton.png")
PushButton = QPushButton(PixMap, "初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
運行結果:
可以看到同時顯示了像素圖和文本內容。我們再嘗試添加圖標試試。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QIcon
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
Icon = QIcon(".\png\PushButton.ico")
PushButton = QPushButton(Icon, "初始文本")
PushButton.clicked.connect(PressButton)
PushButton.show()
app.exec_()
運行結果:
3.2 給按鈕設置背景色
很多控件都可以調用setStyleSheet
方法對外觀進行設置,這裏我們嘗試通過它將按鈕顏色修改爲綠色。
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QPixmap
@Slot()
def PressButton():
print("Hello World!")
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.clicked.connect(PressButton)
PushButton.setStyleSheet("background-color:green")
PushButton.show()
app.exec_()
運行結果:
4 按鈕的其他功能設置
4.1 菜單按鈕
菜單按鈕常運用於工具欄,它使得對具有特定功能的按鍵進行分類管理,節省界面空間。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
from PySide2.QtWidgets import QMenu
app = QApplication([])
PushButton = QPushButton("初始文本")
Menu = QMenu()
Menu.addAction("1")
Menu.addAction("2")
Menu.addAction("3")
PushButton.setMenu(Menu)
PushButton.show()
app.exec_()
運行結果:
4.2 失能按鈕(置灰)
有時按鈕之間具有一些邏輯,當你點了某個按鈕之後,其他按鈕需要將其失效,這時候就要讓按鈕暫時被“置灰”。
代碼示例:
from PySide2.QtWidgets import QApplication, QPushButton
app = QApplication([])
PushButton = QPushButton("初始文本")
PushButton.setEnabled(False)
PushButton.show()
app.exec_()
運行結果: