【问题标题】:How to order PyQt Qmessagebox Buttons如何订购 PyQt Qmessagebox 按钮
【发布时间】:2020-04-21 12:52:10
【问题描述】:

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

编辑:我使用 python 3.8 和 PyQt5

【问题讨论】:

    标签: python pyqt5 qmessagebox


    【解决方案1】:

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

    # ...
    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_()
    

    【讨论】:

      猜你喜欢
      • 2014-12-25
      • 2015-06-18
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多