以下代码显示输入对话框,左侧为"取消"按钮,右侧为"确定"按钮。如何交换按钮的位置?
QInputDialog::getText(this, QString("Email"), QString("Enter email address:"), QLineEdit::Normal, QString(""), &ok, 0);
当谈到按钮顺序时,Qt遵循其运行环境的惯例,即在Windows、KDE等上的Ok/Cancel,在OS X、Gnome等上的Cancel/Ok。这通常是一件好事,除了平台默认的按钮顺序之外,用户不应该感到惊讶。
但是,如果您有充分的理由覆盖平台默认值(我想不出任何原因),或者如果您所在的嵌入式平台上没有平台默认值,则需要覆盖所使用的QStyle定义的内容。
实现您自己的代理样式,覆盖为QStyle::SH_DialogButtonLayout:返回的值
int ProxyStyle::styleHint(StyleHint hint, const QStyleOption * option = 0, const QWidget * widget = 0, QStyleHintReturn * returnData = 0) const override {
if (hint == SH_DialogButtonLayout) {
return QDialogButtonBox::WinLayout;
}
return baseStyle()->styleHint(hint, option, widget, returnData);
}