等待在QML界面中单击两个按钮

时间:2013-06-21 09:42:00

标签: javascript c++ qt qml qtquick2

我再次绝望了。我已经在现有的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()

那么,有没有人知道如何解决这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:2)

据我所知,你不能有这样的方法“等待”,因为你必须完成对connectIDs的调用才能接管事件循环,并且能够对你做任何事情。 GUI(包括选择图片)。

解决方案是使用“软件模式”,当您在connect上进行clic时,将模式更改为,例如connectMode,然后返回。现在,当您单击一张图片时,您可以检查该模式是否为connectMode,并将其标记为已选中。如果已经选择了另一张图片,那么您还需要调用connectFinished()来完成连接它们所需的任何操作,然后在normalMode中转回软件。