我再次绝望了。我已经在现有的QT C ++应用程序中添加了QML接口。知道我想实现这样的事情:
用户想要连接到图片以让它们同步跳过。所以他点击一个名为“connect”的按钮,然后点击第一张图片,然后点击第二张图片。按钮的信号带有一个id,因此connect-Function知道点击了哪些图片并将最终信号发送到c ++部分。
我想要这样的事情:
signal connectGalleys(int id1, int id2)
function connectIDs(){
var id1
var id2
id1 = waitFor(onButtonClicked(id))
id2 = waitFor(onButtonClicked(id))
saveConnection(id1,id2)
}
onConnectClicked: connectIDs()
那么,有没有人知道如何解决这个问题?
非常感谢!
答案 0 :(得分:2)
据我所知,你不能有这样的方法“等待”,因为你必须完成对connectIDs
的调用才能接管事件循环,并且能够对你做任何事情。 GUI(包括选择图片)。
解决方案是使用“软件模式”,当您在connect
上进行clic时,将模式更改为,例如connectMode
,然后返回。现在,当您单击一张图片时,您可以检查该模式是否为connectMode
,并将其标记为已选中。如果已经选择了另一张图片,那么您还需要调用connectFinished()
来完成连接它们所需的任何操作,然后在normalMode
中转回软件。