我有一个MainForm.ui,一个按钮和一个插槽连接到来自C ++端的信号。简化示例:
// main.qml
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
visible: true
width:430
height:100
id:mainWindow
MainForm {
}
}
// MainForm.ui.qml
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Rectangle {
id: mainForm
width: 800
height: 400
visible: true
Button {
text: "Hey"
onClicked: {
var component = Qt.createComponent("SecondForm.qml");
if (component.status === Component.Error) {
print(component.errorString())
return;
}
var win = component.createObject(mainWindow);
win.show();
mainWindow.hide();
}
}
}
收到信号后,我创建一个SecondForm并隐藏主要信号。 在SecondForm上我有一个标签和一个组合框:
// SecondForm.qml
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.2
Window {
id:secondId
width: 800
height: 480
title: "Second"
TabView {
id:tabview
anchors.fill: parent
anchors.margins: 5
Tab {
id:tab1
ComboBox {
model: [ "item1", "item2", "item3", "item4" ]
}
}
}
}
但是当我选择组合框中的任何项目时,应用程序关闭甚至没有崩溃消息。如果我将组合框放在第一个(主要)形式上,它就能很好地工作。为什么选择动态组件上的组合框项会导致关闭? (Win7 64,qt5.6 alfa 32bit,vs2015)