Qt QML信号和2个不同QML之间的插槽
我需要根据button.qml中的button press执行main.qml中的一些操作。按钮QML的按钮内部是一些自定义对象的内部。让我们给它命名为customObject。button.qml中的customObject如下所示:Qt QML信号和2个不同QML之间的插槽,qt,qml,Qt,Qml,我需要根据button.qml中的button press执行main.qml中的一些操作。按钮QML的按钮内部是一些自定义对象的内部。让我们给它命名为customObject。button.qml中的customObject如下所示: customObject { id:trialObject signal backPagePressed() Button { id:button1 MultitouchArea { onPressed: { trialObject.backPagePr
customObject {
id:trialObject
signal backPagePressed()
Button {
id:button1
MultitouchArea {
onPressed:
{
trialObject.backPagePressed()
}
现在,当我按下按钮时,它会发出backPagePressed()
。我的问题是:如何在主QML中为该信号创建插槽?我熟悉C++中的信号和时隙机制,但对于QML来说,这并不起作用。我在main.qml中制作了如下内容:
Loader
{
id:pageLoader
onBackPagePressed:
{
pageLoader.source =""
}
}
该部分需要删除加载程序的源代码,以便返回到之前的页面。但是,我不确定BackPagePressed:。。。如何将我的信号
backPagePressed
,连接到我的加载器中的相关部分?您应该使用连接
对象(文档)以及加载器的项
属性:
Loader {
id: pageLoader
source: "CustomObject.qml"
}
Connections {
target: pageLoader.item
//Qt < 5.15
onBackPagePressed: pageLoader.source = ""
//Qt >= 5.15
function onBackPagePressed()
{
pageLoader.source = ""
}
}
加载器{
id:pageLoader
来源:“CustomObject.qml”
}
联系{
目标:pageLoader.item
//Qt<5.15
onBackPagePressed:pageLoader.source=“”
//Qt>=5.15
函数onBackPagePressed()
{
pageLoader.source=“”
}
}
我将该连接创建为Loader的同级。但它找不到onBackPagePressed。它是否与另一个qml中的信号有关?我的意思是孩子不是兄弟姐妹*您应该将源设置为具有该信号的CustomObject。它确实可以是兄弟姐妹我如何设置源?文件中没有说明。。我是QML的新手。@Amfasis您应该更新您的答案,以描述Qt 5.15以来的新连接语法,例如函数onbackpagespressed(){
而不是onbackpagespressed:{