如何覆盖QDialogButtonBox类中按钮的标准顺序?
似乎PyQt follows some kind of standard based on the platform it runs on。
目前取消在左边,Ok在右边(我在CentOS 6上):
但是我的用户发现它令人困惑,并且反对他们过去习惯并要求我交换它们:
这是我创建框的方式:
self.buttonBox = QtGui.QDialogButtonBox(self)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)
答案 0 :(得分:3)
我考虑过改变包含按钮的布局中的方向:
buttonBox.layout().setDirection(QtGui.QBoxLayout.RightToLeft)
在以下示例中:
from PySide import QtGui, QtCore
app = QtGui.QApplication([])
buttonBox = QtGui.QDialogButtonBox()
buttonBox.setOrientation(QtCore.Qt.Horizontal)
buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok|QtGui.QDialogButtonBox.Cancel)
buttonBox.layout().setDirection(QtGui.QBoxLayout.RightToLeft) # with this line the order of the buttons swap
buttonBox.show()
app.exec_()
它反转了我的订单(如果RightToLeft不起作用,也请尝试QtGui.QBoxLayout.LeftToRight
)。