如何修改Python中QtWidget QMessageBox.question对话框的按钮文本
如何修改Python中QtWidget QMessageBox.question对话框的按钮文本
嗨,这个问题我之前也碰到过,默认的英文按钮确实不太贴合需求,其实Qt给了我们很灵活的自定义方式,不用发愁~
最简单的思路是放弃QMessageBox.question这个快捷静态方法,手动创建QMessageBox实例来定制按钮文本,具体代码示例如下:
from PyQt5.QtWidgets import QMessageBox, QWidget class YourWidget(QWidget): def __init__(self): super().__init__() self.open_custom_dialog() def open_custom_dialog(self): # 创建对话框实例 msg_box = QMessageBox(self) msg_box.setWindowTitle("ask") msg_box.setText("example text") # 添加自定义按钮,指定文本和对应的角色(Yes/No角色用来匹配逻辑判断) ja_btn = msg_box.addButton("Ja", QMessageBox.YesRole) nein_btn = msg_box.addButton("NEIN", QMessageBox.NoRole) # 显示对话框 msg_box.exec_() # 判断用户点击的按钮 if msg_box.clickedButton() == ja_btn: print("用户选择了Ja") elif msg_box.clickedButton() == nein_btn: print("用户选择了NEIN")
这种写法的好处是完全可控,你可以给按钮设置任意语言的文本,而且通过clickedButton()能准确判断用户的选择逻辑。
如果是使用PyQt6,代码逻辑基本一致,只是枚举的写法稍有调整(比如QMessageBox.YesRole会变成QMessageBox.ButtonRole.YesRole),核心思路不变。
备注:内容来源于stack exchange,提问作者Sina
相关产品推荐
相关产品推荐

