首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何订购PyQt Qmessagebox按钮

如何订购PyQt Qmessagebox按钮
EN

Stack Overflow用户
提问于 2020-04-21 12:52:10
回答 1查看 347关注 0票数 0

我在我的Qmessagebox中有4个自定义按钮,我希望它们按顺序排列:(无,小,中,大)。

代码语言:javascript
复制
msgbox.setStandardButtons(QMessageBox.Yes | QMessageBox.No | QMessageBox.Ignore | QMessageBox.Retry)
msgbox.setDefaultButton(QMessageBox.Yes)
buttonX = msgbox.button(QMessageBox.Yes)
buttonY = msgbox.button(QMessageBox.No)
buttonZ = msgbox.button(QMessageBox.Ignore)
buttonA = msgbox.button(QMessageBox.Retry)
buttonX.setText("None")
buttonY.setText("Small")
buttonZ.setText("Medium")
buttonA.setText("Large")

result = msgbox.exec_()

目前,默认按钮是Qmessagebox.Yes按钮(“无”)。如何在不改变每个按钮的名称的情况下更改按钮的顺序?

编辑:我使用python3.8和PyQt5

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-21 13:31:17

按钮的顺序由角色预定义,因此可能的解决方案是删除"Medium“按钮并将其添加到末尾:

代码语言:javascript
复制
# ...
buttonA.setText("Large")

hlay = msgbox.findChild(QHBoxLayout)
litem = hlay.takeAt(3)
w = litem.widget()
if w is not None:
    hlay.addWidget(w)

result = msgbox.exec_()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61344013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档