不同平台上按钮的顺序(QDialogBu​​ttonBox)

Sno*_*gus 1 python qt pyqt4

QDialogBu​​ttonBox 小部件会自动重新排序其按钮,以满足不同平台上用户的期望。我想遵循这种行为,但使用我自己的按钮标签(例如“导入”而不是“确定”)。我怎样才能实现这个目标?是否可以使用 QMessageBox,还是我需要编写自己的实现?我正在使用 PyQt4 和 Qt Designer 编写我的应用程序。

请参阅下面 OS X 上 QDialogBu​​ttonBox 的 Aqua 和 Cleanlooks 风格的屏幕截图。

QDialogBu​​ttonBox

cma*_*t85 5

QDialogButtonBox可以为您执行此操作,但您需要创建一个对话框以将其放在第一位(这是一项微不足道的工作)。

...
auto buttons = new QDialogButtonBox( this );
buttons->addButton( "Import", QDialogButtonBox::AcceptRole );
buttons->addButton( "Cancel", QDialogButtonBox::RejectRole );
...
Run Code Online (Sandbox Code Playgroud)

文档在这里(它是 C++,但我确信可以遵循它),总体思路是ButtonRole当前样式布局使用它来重新排列按钮。