【发布时间】:2014-01-25 16:13:42
【问题描述】:
使用 qt 5.2,我正在尝试动态添加一个像这样的简单按钮:
ApplicationWindow
{
id: appWindow
width: 640
height: 420
minimumHeight: 400
minimumWidth: 600
function addButton() {
var obj = Qt.createComponent("Button.qml");
if (obj.status == obj.Ready)
{
var button = obj.createObject(appWindow);
button.color = "red";
button.width=50;
button.height=80;
button.x=50; button.y=50;
}
}
Button {
anchors.centerIn: parent;
text: "ok";
onClicked: {
addButton();
}
} ...
但是在 createComponent 之后我总是得到:
QQmlComponent: 组件没有准备好
怎么了?
【问题讨论】:
-
按照示例here。
object.status必须与Component.Ready枚举检查是否相等(==)。你也可以打印,像这样的错误if (component.status == Component.Error) { // Error Handling console.log("Error loading component:", component.errorString()); }我希望,addButton函数在静态按钮组件中没有解决。所以尝试在onClicked事件处理程序中添加appWindow.addButton();。 -
我在文件开头添加了 import 语句,它可以正常工作,没有错误。我看到一个按钮
标签: qt components qml qtquickcontrols