【发布时间】:2015-09-13 18:28:25
【问题描述】:
我想在某些条件下显示DialogonCompleted(此处省略处理此条件 - 一个简单的if 子句)
main.qml:
import QtQuick 2.2
import QtQuick.Controls 1.0
ApplicationWindow
{
id: appWindow
width: 480
height: 640
visible: true
StackView
{
id: stackView
anchors.fill: parent
// Implements back key navigation
focus: true
initialItem: Item
{
width: parent.width
height: parent.height
Button { onClicked: dialog.open() }
// ...
Component.onCompleted: dialog.open()
}
}
MyDialog {id: dialog }
}
MyDialog.qml
import QtQuick 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.0
import QtQuick.Controls 1.0
Dialog
{
id: root
title: "MyDialog"
standardButtons: Qt.NoButton
ColumnLayout
{
id: column
width: parent ? parent.width : 200
Label { text: "hello world"; Layout.fillWidth: true }
}
}
当我启动我的应用程序时,屏幕变暗,Dialog 的阴影出现,好像对话框有width == 0。
有时(很少)对话框会正确显示。
如果我注释掉Component.onCompleted 行并使用Button 启动对话框,它会正确显示。
我做错了什么? 我正在使用适用于 Android 的 Qt 5.5
【问题讨论】: