QML: MessageDialog, порядок стандартных кнопок и настройка кнопки по умолчанию

У меня в main.qml есть следующий код

 MessageDialog {
    id: exitDialog
    title: "Quit"
    text: "Save before quitting?"
    icon: StandardIcon.Question
    standardButtons: StandardButton.Save| StandardButton.Discard |  StandardButton.Cancel
    onAccepted: {
    ...
    }
    onDiscard: Qt.quit()
}

Однако проблема в том, что кнопки для меня отображаются как близкие без сохранения «Отмена» и «Последнее сохранение»! Кнопка по умолчанию установлена ​​как закрыть без сохранения. Я хочу, чтобы мой порядок кнопок в коде сохранялся, а также был установлен по умолчанию для сохранения. Кто-нибудь сталкивался с такими проблемами? какие-либо предложения ?

Я видел этот ответ Как установить значение по умолчанию кнопка MessageDialog в QML? но как это сделать для стандартных кнопок?


person itsnevertoobadtoaskforhelp    schedule 28.07.2016    source источник
comment
Есть новости по этому поводу?   -  person Nmaster88    schedule 20.03.2019


Ответы (1)


Просто чтобы дать представление. http://doc.qt.io/qt-5/qmessagebox.html

Порядок отображения кнопок зависит от платформы. Например, в Windows «Сохранить» отображается слева от «Отмена», а в Mac OS — в обратном порядке.

Отметьте одну из ваших стандартных кнопок как кнопку по умолчанию.

QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();
person MoraRockey    schedule 28.07.2016
comment
Вопрос касается MessageDialog QML, а не C++ QMessageBox. - person Mailerdaimon; 28.07.2016
comment
Вы ответили на часть вопроса о заказе, хотя я тоже обнаружил, что у меня нет большого контроля. Но вопрос в том, есть ли возможность переопределить это? - person itsnevertoobadtoaskforhelp; 28.07.2016
comment
К сожалению, как уже упоминал @Mailerdaimon, это не код QML. Я уже знаю о значении по умолчанию в QT C++ - person itsnevertoobadtoaskforhelp; 28.07.2016