我的所有对话框都显示在屏幕的左上角,而不是中心。如何在QtQuick Controls 2屏幕中居中对话框?
让对话框自动更正的最佳方法是什么?
import QtQuick 2.7
import QtQuick.Controls 2.2
ApplicationWindow {
id: mainWindow
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Component.onCompleted: {
showMessageBox('Hey this actually works!');
}
function showMessageBox(message) {
var component = Qt.createComponent("MessageDialog.qml")
if(component.status == Component.Ready) {
var dialog = component.createObject(mainWindow)
dialog.title = qsTr("Information")
dialog.text = message
dialog.open()
} else
console.error(component.errorString())
}
}
用非常简单的MessageDialog.qml:
import QtQuick 2.7
import QtQuick.Controls 2.2
Dialog {
standardButtons: DialogButtonBox.Ok
property alias text : textContainer.text
Text {
id: textContainer
anchors.fill: parent
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignTop
}
}
好的,我改为'QtQuick 2.7'。我正在寻找一种解决方案,我不必关心宽度和高度。使用旧的'QtQuick.Dialogs 1.2'会不好吗? –
这取决于你的用例。对我来说问题是,'Dialog'是通过'QtQuick 2.8'引入的,所以我只能评估底层的'Popup'。 – derM
你确定吗?我是来自这里的'Dialog':https://doc.qt.io/qt-5/qml-qtquick-controls2-dialog.html所以不需要'QtQuick 2.8',对吗? –