PyQt5中如何捕获QMessageBox的Cancel按钮的点击事件
发布时间:2023-12-31 19:09:50
在PyQt5中,我们可以通过clickedButton信号来捕获QMessageBox的按钮点击事件,然后通过调用buttonRole()方法获取被点击按钮的角色,并判断是否是Cancel按钮被点击。下面是一个使用例子,该例子展示了如何捕获QMessageBox的Cancel按钮的点击事件。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox, QVBoxLayout, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
layout = QVBoxLayout()
button = QPushButton('Show MessageBox')
button.clicked.connect(self.show_message_box)
layout.addWidget(button)
self.setLayout(layout)
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('QMessageBox Example')
self.show()
def show_message_box(self):
reply = QMessageBox.question(self, 'Message', 'Do you want to quit?',
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
if reply == QMessageBox.Yes:
print('Yes button clicked')
elif reply == QMessageBox.No:
print('No button clicked')
elif reply == QMessageBox.Cancel:
self.cancel_button_clicked()
def cancel_button_clicked(self):
print('Cancel button clicked')
# 在这里实现你的逻辑
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的例子中,我们创建了一个窗口类Example,其中包含一个按钮。当点击按钮时,会弹出一个QMessageBox,询问用户是否要退出。QMessageBox的按钮包括Yes、No和Cancel。当用户点击Cancel按钮时,会调用cancel_button_clicked()方法,可以在该方法中实现自己的逻辑。
希望以上例子能够帮助到你!
