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

Posted

技术标签:

【中文标题】不同平台上的按钮顺序(QDialogBu​​ttonBox)【英文标题】:Order of push buttons on different platforms (QDialogButtonBox) 【发布时间】:2013-03-24 12:12:35 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

QDialogButtonBox 可以为您执行此操作,但您需要创建一个对话框来首先放入一个(工作量很小)。

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

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

【讨论】:

以上是关于不同平台上的按钮顺序(QDialogBu​​ttonBox)的主要内容,如果未能解决你的问题,请参考以下文章

Qt:如何使用 QSignalMapper 为非标准按钮实现 QDialogBu​​ttonBox ?

访问 Qt 的 QDialogBu​​ttonBox 中的单个按钮

将插槽连接到 QDialogBu​​ttonBox 中的按钮

如何处理 QDialogBu​​ttonBox RestoreDefaults 按钮

如何获取由 QDialogBu​​ttonBox 创建的 QPushButton 的角色?

如何在QDialogBu ttonBox中将图标设置为新按钮?