Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML:MessageDialog,标准按钮的顺序和设置默认按钮_Qt_Qml_Qt5_Qt5.5 - Fatal编程技术网

Qt QML:MessageDialog,标准按钮的顺序和设置默认按钮

Qt QML:MessageDialog,标准按钮的顺序和设置默认按钮,qt,qml,qt5,qt5.5,Qt,Qml,Qt5,Qt5.5,我的main.qml中有以下代码 MessageDialog { id: exitDialog title: "Quit" text: "Save before quitting?" icon: StandardIcon.Question standardButtons: StandardButton.Save| StandardButton.Discard | StandardButton.Cancel onAccepted: { .

我的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()
}
但问题是,我的按钮显示为关闭,没有保存“取消”和“上次保存”!默认按钮设置为关闭而不保存我希望保留代码中的按钮顺序,并将默认设置为保存。有人会遇到这样的问题吗?有什么建议吗

我已经看到了这个答案 但是我怎么做标准按钮呢

只是给你一个想法

按钮的显示顺序取决于平台。例如,在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();

问题是关于MeasGeDealQualQML,而不是C++ QMaseBox,你已经回答了排序问题的一部分,我也发现我在那里没有太多的控制。但问题是,是否有可能重写此代码?不幸的是,正如@Mailerdaimon所提到的,它不是QML代码。我已经知道QT C++中的默认值了,有什么更新吗?