Qt 如何交换对话框小部件上的“取消”和“确定”按钮?

Qt 如何交换对话框小部件上的“取消”和“确定”按钮?,qt,qt5,Qt,Qt5,下面的代码显示“输入”对话框,左侧为“取消”按钮,右侧为“确定”按钮。如何交换按钮的位置 QInputDialog::getText(this, QString("Email"), QString("Enter email address:"), QLineEdit::Normal, QString(""), &ok, 0); 当谈到按钮顺序时,Qt遵循其运行环境的约定,即Windows、KDE等上的Ok/Cancel,OS X、Gnome等上的Cancel/Ok。这通常是一件好事,除

下面的代码显示“输入”对话框,左侧为“取消”按钮,右侧为“确定”按钮。如何交换按钮的位置

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定义的内容

实现您自己的,覆盖为以下项返回的值:


当谈到按钮顺序时,Qt遵循其运行环境的约定,即Windows、KDE等上的Ok/Cancel,OS X、Gnome等上的Cancel/Ok。这通常是一件好事,除了平台默认的按钮顺序之外,用户不应该感到惊讶

但是,如果您有很好的理由覆盖平台默认值,我想不出任何原因,或者如果您在没有平台默认值的嵌入式平台上,您需要覆盖使用的QStyle定义的内容

实现您自己的,覆盖为以下项返回的值:

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);
}