У меня есть пользовательский интерфейс для некоторого программного обеспечения для дешифрования, которое вызывается из почтового клиента в зашифрованном приложении.Закрыть лист с сигналом от C++ в Blackberry Cascades
Мой объект дешифрования выдает сигнал об успешном окончании расшифровки:
emit decryptedChanged();
, который я пройти через мой объект контроллера (прилагается в качестве _encryptedattachmentencryptedattachment к UI QML:
connect(m_decryptor, SIGNAL(decryptedChanged()), this, SIGNAL(decryptedChanged()));
У меня есть Лист, который отображается при вызове в зашифрованном файле: при инициализации пользовательского интерфейса:
onCreationCompleted: {
splashscreen.open();
}
(в конце моей панели вкладок, перед прикрепленными объектами, где находится Лист.)
Я пытаюсь закрыть Лист по сигналу.
Sheet {
id: splashscreen
peekEnabled: false
Page {
Container {
layout: DockLayout {
}
ImageView {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
imageSource: "asset:///images/background.png"
}
Label {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Center
text: "Decrypting..."
multiline: true
}
}
}
onCreationCompleted: {
_encryptedattachment.decryptedChanged.connect(splashscreen.onDecryptedChanged());
}
function onDecryptedChanged() {
splashscreen.close();
}
}
Всплеск не будет закрыт. Я знаю, что объект можно увидеть в пользовательском интерфейсе, поскольку я использую другие свойства и т. Д. Не хватает ли QPROPERTY или что-то еще?
Update:
Это мое определение сигнала:
Q_INVOKABLE void decryptedChanged();
Update снова:
Я добавил некоторые console.logs к QML:
onCreationCompleted: {
_encryptedattachment.decryptedChanged.connect(splashscreen.onDecryptedChanged());
console.log("connected");
}
function onDecryptedChanged() {
console.log("closing");
splashscreen.close();
}
Это дает мне следующую ouptut:
closing
connected
, которая в обратном направлении, и SplashScreen не закрывается.
Не похоже, чтобы какой-либо из кода, который вы связали, несет ответственность за то, что он не работает. Вы уверены, что ваш сигнал испущен? – Deadron
Да, я добавил отладочную печать непосредственно перед выпуском, и она была напечатана. Может ли это иметь какое-то отношение к порядку, в котором все происходит? –