按鈕事件及訊息視窗

本例說明按鈕事件設定,並於按鈕按下後彈出訊息視窗

視窗設計

使用 Qt Designer 設計如下 ui 介面,請注意按鈕的 objectName 要改成 btn

按鈕事件

按鈕的 objectName 為 btn,所以在建構子中先註冊按下後要執行的方法

self.btn.clicked.connect(self.btn_click)

訊息視窗

視息視窗為 QMessageBox,可以設定視窗 title,要顯示的文字 text,及要出現的按鈕,最後使用 msg.extc() 傳回按下的結果。

    def btn_click(self):
        msg=QMessageBox()
        msg.setWindowTitle("測試")
        msg.setText("彈出視窗")
        msg.addButton(QMessageBox.Ok)
        msg.addButton(QMessageBox.Cancel)
        result=msg.exec()
        if result==QMessageBox.Ok:
            print("ok")
        else:
            print("cancel")

完整代碼

底下為完整代碼

import sys
from PySide6.QtWidgets import QMainWindow, QMessageBox, QApplication
from ui.ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.btn.clicked.connect(self.btn_click)
    def btn_click(self):
        msg=QMessageBox()
        msg.setWindowTitle("測試")
        msg.setText("彈出視窗")
        msg.addButton(QMessageBox.Ok)
        msg.addButton(QMessageBox.Cancel)
        result=msg.exec()
        if result==QMessageBox.Ok:
            print("ok")
        else:
            print("cancel")
app=QApplication(sys.argv)
mainWindow=MainWindow()
mainWindow.show()
app.exec()

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *