如何订购PyQt Qmessagebox按钮

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

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。是按钮(“无”)。如何在不切换每个按钮名称的情况下更改按钮的顺序?

编辑:我使用python 3.8和PyQt5

mengwang66 回答:如何订购PyQt Qmessagebox按钮

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

# ...
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_()
本文链接:https://www.f2er.com/2392601.html

大家都在问