javascript - 在QML界面等待两个按钮被点击

标签 javascript c++ qt qml qtquick2

我又一次绝望了。我已将 QML 接口(interface)添加到现有的 QT C++ 应用程序。知道我想实现这样的东西:

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

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

非常感谢!

最佳答案

据我所知,您不能使用这样的“等待”方法,因为您必须完成对 connectIDs 的调用,事件循环才能接管,并且能够执行与您的 GUI 相关的任何内容(包括选择图片)。

解决方案是拥有“软件模式”,当您点击connect 时,您将模式更改为,例如connectMode,然后返回。现在,当您点击一张图片时,您可以检查模式是否为connectMode,并将其标记为选中。如果已经选择了另一张图片,那么您还调用 connectFinished(),它会执行您需要做的任何事情来连接它们,然后在 normalMode 中返回软件。

关于javascript - 在QML界面等待两个按钮被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17232098/

相关文章:

javascript - 定期刷新或轮询

javascript - 如何在 JavaScript 中单击时向另一个选定列表添加和删除多个选定列表值

javascript - window.onload 函数被调用两次

c++ - std::set<std::pair<size_t, std::string>>::find(),没有字符串复制构造

c++ - 将新元素插入函数指针映射 "inline"?

c++ - vector push_back : doesn't convert parameter

c++ - 使用 QDoubleSpinBox 自然地键入十进制值

JavaScript异步设计书?

c++ - Qt连接中的Lambda表达式

qt - 将自定义小部件添加到 QTableWidget 单元格