我的所有對話框都顯示在屏幕的左上角,而不是中心。如何在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',對嗎? –