PyQt5中如何使用QMessageBox的Cancel按钮显示询问框
发布时间:2023-12-31 19:12:18
PyQt5中可以使用QMessageBox的静态方法question来创建一个带有Cancel按钮的询问框。以下是一个使用例子,该例子创建了一个QMainWindow,在点击按钮时显示询问框,并根据点击结果执行相应的操作。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("QMessageBox Example")
self.setGeometry(300, 300, 250, 150)
# 创建一个按钮,点击时弹出询问框
button = QPushButton("Show MessageBox", self)
button.setGeometry(50, 50, 150, 30)
button.clicked.connect(self.showMessageBox)
def showMessageBox(self):
# 创建一个询问框
reply = QMessageBox.question(self, 'MessageBox Example', 'Do you want to proceed?', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel, QMessageBox.No)
# 根据用户的点击结果执行相应的操作
if reply == QMessageBox.Yes:
print("Proceed with the operation.")
elif reply == QMessageBox.No:
print("Operation aborted.")
else:
print("Cancel button clicked.")
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
在这个例子中,我们创建了一个QMainWindow,并在窗口中加入了一个按钮。当按钮被点击时,会弹出一个询问框,询问用户是否想要继续进行操作。询问框中有三个按钮,分别是Yes、No和Cancel。根据用户点击的按钮,我们在showMessageBox方法中执行相应的操作。
在创建询问框时,我们使用了QMessageBox的question方法。方法的 个参数是父窗口,即询问框所属的窗口。第二个参数是询问框的标题文本。第三个参数是询问框显示的文本消息。第四个参数是按钮的样式,我们在这里使用了QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel来同时显示三个按钮。最后一个参数是默认选中的按钮,我们在这里选中了No按钮。
当用户点击按钮后,会以reply的值来表示用户的选择。我们可以根据reply的值来判断用户选择了哪个按钮,然后执行相应的操作。在这个例子中,如果用户选择了Yes按钮,就会打印"Proceed with the operation.";如果用户选择了No按钮,就会打印"Operation aborted.";如果用户选择了Cancel按钮,则会打印"Cancel button clicked."。
