2013-06-21 111 views
1

我再次绝望。我已经为现有的QT C++应用程序添加了一个QML接口。知道我想实现这样的事情:等待QML界面中点击两个按钮

用户想连接到图片,让他们跳过同步。所以他点击一个叫做“连接”的按钮,然后点击第一张图片,然后点击第二张图片。按钮的信号带有一个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() 

因此,没有人有一个想法如何解决这个问题?

非常感谢!

回答

2

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

解决方案是有“软件模式”,当你在connect上点击时,你改变模式为,例如connectMode,然后返回。现在,当您点击一张图片时,您可以检查模式是否为connectMode,并将其标记为已选。如果已经选择了另一张照片,那么您另外拨打connectFinished(),该功能可以做任何您需要做的连接它们,然后将normalMode中的软件返回。

+0

非常感谢,我会试试=) – Zamahra