2013-06-21 7 views
1

Я снова отчашусь. Я добавил QML-интерфейс к существующему приложению QT C++. Знаю, что хочу реализовать что-то вроде этого:Подождите, пока две кнопки будут нажаты в интерфейсе QML

Пользователь хочет подключиться к фотографиям, чтобы они пропускали синхронно. Поэтому он нажимает кнопку «подключиться», затем на первом снимке и после этого на втором снимке. Сигналы кнопок имеют идентификатор, поэтому функция connect знает, какие изображения были нажаты, и отправляет окончательный сигнал в часть 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

Насколько я знаю, у вас не может быть метода «wait», так как вы должны завершить свой вызов до connectIDs, чтобы цикл событий взял на себя ответственность и смог что-либо сделать с вашим графическим интерфейсом (в том числе выбор снимков).

Решение состоит в том, чтобы иметь «программные режимы», а когда вы кликаете на connect, вы меняете режим на, например, connectMode и возвращается. Теперь, когда вы нажимаете на одно изображение, вы можете проверить, установлен ли режим connectMode, и пометить его как выбранный. Если было выбрано другое изображение, то вы также вызываете connectFinished(), который делает все, что вам нужно для их подключения, затем верните программное обеспечение в normalMode.

+0

Большое спасибо, я попробую это =) – Zamahra