中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

python qpushbutton的信號與槽機制

小樊
84
2024-09-06 15:52:34
欄目: 編程語言

在 PyQt5 中,QPushButton 是一個常用的 GUI 組件,它可以觸發特定的操作

以下是一個簡單的示例,展示了如何使用 QPushButton 的信號和槽機制:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel

class MyApp(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle('QPushButton Signal and Slot')

        # 創建一個 QPushButton 實例
        self.button = QPushButton('Click me', self)

        # 創建一個 QLabel 實例,用于顯示按鈕被點擊的次數
        self.label = QLabel('Button clicked 0 times', self)

        # 創建一個 QVBoxLayout 實例,用于布局按鈕和標簽
        layout = QVBoxLayout()
        layout.addWidget(self.button)
        layout.addWidget(self.label)

        # 將布局設置為窗口的布局
        self.setLayout(layout)

        # 連接 QPushButton 的 clicked 信號到自定義的槽函數
        self.button.clicked.connect(self.on_button_clicked)

    def on_button_clicked(self):
        # 獲取當前標簽文本
        text = self.label.text()

        # 解析出按鈕被點擊的次數
        count = int(text.split()[-1])

        # 更新按鈕被點擊的次數
        count += 1

        # 更新標簽文本
        self.label.setText(f'Button clicked {count} times')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())

在這個示例中,我們創建了一個名為 MyApp 的類,它繼承自 QWidget。在 initUI 方法中,我們創建了一個 QPushButton 實例和一個 QLabel 實例。然后,我們將這兩個組件添加到一個 QVBoxLayout 實例中,并將該布局設置為窗口的布局。

接下來,我們連接 QPushButton 的 clicked 信號到自定義的槽函數 on_button_clicked。當按鈕被點擊時,這個槽函數會被調用,更新 QLabel 的文本以顯示按鈕被點擊的次數。

最后,我們創建了一個 QApplication 實例,并將 MyApp 實例顯示出來。程序將持續運行,直到用戶關閉窗口。

0
鱼台县| 乌兰浩特市| 漯河市| 大化| 健康| 普格县| 额尔古纳市| 灵宝市| 信丰县| 巴马| 错那县| 曲松县| 合山市| 涡阳县| 张北县| 耒阳市| 磐石市| 扶绥县| 高雄市| 松阳县| 新安县| 敦煌市| 昌吉市| 交口县| 杨浦区| 上杭县| 郑州市| 边坝县| 定日县| 华亭县| 鄂托克旗| 望奎县| 梅河口市| 浏阳市| 常德市| 永修县| 长泰县| 新乐市| 巴青县| 界首市| 安达市|