Следующий код отображает диалоговое окно ввода с кнопкой «Отмена» слева и кнопкой «ОК» справа. Как поменять местами кнопки?
QInputDialog::getText(this, QString("Email"), QString("Enter email address:"), QLineEdit::Normal, QString(""), &ok, 0);
Следующий код отображает диалоговое окно ввода с кнопкой «Отмена» слева и кнопкой «ОК» справа. Как поменять местами кнопки?
QInputDialog::getText(this, QString("Email"), QString("Enter email address:"), QLineEdit::Normal, QString(""), &ok, 0);
Когда дело доходит до порядка кнопок, Qt следует соглашению среды, в которой он работает, т. е. Ok/Cancel в Windows, KDE и т. д. и Cancel/OK в OS X, Gnome и т. д. не должен удивлять пользователя порядком кнопок, отличным от стандартного для платформы.
Однако, если у вас есть веская причина переопределить платформу по умолчанию (я не могу придумать ни одной) или если вы, например. на встроенной платформе, где нет платформы по умолчанию, вам необходимо переопределить то, что определяет используемый 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);
}