我在widget中创建了一个UI,并为其添加了一个edittext控件和一个pushButton控件。在QML文件中,我有一个TextInput控件。我能够在QML中显示Widget控件。现在,我想将QML中的EditText控件文本设置为在单击Widget的pushButton时widget中的edittext控件中的文本。单击按钮时,我想将editText中的文本发送到QML TextInput。
怎么可能。
我使用以下命令注册并使用QML中的Widget。 main.cpp文件--->
qmlRegisterType<WidgetContainer>("MyWidget", 1, 0, "MyWidget");
QML文件内容:
import QtQuick 1.1
import MyWidget 1.0
Rectangle {
width: 360
height: 360
color: "gray"
TextInput {
id: textInput1
x: 10
y: 10
width: 100
height: 100
color: "black"
cursorVisible: true
text: widget.getText()
}
MyWidget {
id: widget
x:10;
y:70
width: 180;
height: 150
text: "Widget text"
}
}
答案 0 :(得分:1)
类WidgetContainer
应发出信号。然后,您将能够在QML中编写所需的单击处理。
默认情况下,按钮(或WidgetContainer
类的任何其他成员)在QML代码中不可用。因此,您无法直接在QML中使用按钮的clicked
信号
你需要声明,例如buttonClicked
班级中的WidgetContainer
信号。然后,您需要将WidgetContainer
的{{1}}信号连接到按钮的buttonClicked
信号。
现在您可以在QML中使用clicked
信号:
buttonClicked