Qt QML:窗口打开后如何显示对话框?
在用户开始使用应用程序之前,我需要向用户显示一个模式对话框。具有对话框示例的应用程序:Qt QML:窗口打开后如何显示对话框?,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,在用户开始使用应用程序之前,我需要向用户显示一个模式对话框。具有对话框示例的应用程序: import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.12 import QtQuick.Dialogs 1.3 Window { visible: true width: 640 height: 480 title: qsTr(
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.3
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button {
text: "Show dialog"
onClicked: profileDialog.open()
}
Dialog {
id: profileDialog
title: "Select profile"
ColumnLayout {
RadioButton {
checked: true
text: qsTr("First")
}
RadioButton {
text: qsTr("Second")
}
RadioButton {
text: qsTr("Third")
}
}
standardButtons: StandardButton.Ok
}
}
此示例显示单击按钮时的对话框。但我需要在应用程序启动时执行此操作。如何在打开主窗口时显示profileDialog?也许有什么信号?但我在文档中找不到此类信号。在这些情况下,应使用以下信号:
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
// ...
Component.onCompleted: profileDialog.open()
}
窗口{
可见:正确
宽度:640
身高:480
标题:qsTr(“你好世界”)
// ...
Component.onCompleted:profileDialog.open()
}
在这些情况下,应使用信号:
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
// ...
Component.onCompleted: profileDialog.open()
}
窗口{
可见:正确
宽度:640
身高:480
标题:qsTr(“你好世界”)
// ...
Component.onCompleted:profileDialog.open()
}
感谢您提供的解决方案。我找到了另一个解决方案:onVisibleChanged:if(visible)profileDialog.open()。哪一个更好:onVisibleChanged还是Component.onCompleted?@AndreyEpifantsev在您当前的情况下,任何人都是同样有效的,对于我的代码,它只会在第一次创建窗口时执行,在您的情况下,每次窗口可见时(例如,如果它隐藏窗口,并且再次显示,信号也会被触发),这取决于你想要什么。谢谢你的解决方案。我找到了另一个解决方案:onVisibleChanged:if(visible)profileDialog.open()。哪一个更好:onVisibleChanged还是Component.onCompleted?@AndreyEpifantsev在您当前的情况下,任何人都是同样有效的,对于我的代码,它只会在第一次创建窗口时执行,在您的情况下,每次窗口可见时(例如,如果它隐藏窗口,并且再次显示,信号也会被触发),这将取决于你想要什么。