Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QMessageBox hangs the application on IOS 11.4.1
I am developing a multi OS application. The same source code is deployed on IOS, Windows, Android.
For many confirmations, I have used QMessageBox like this.
QMessageBox msg; msg.setText(tr("Confirm Application Close")); msg.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msg.setDefaultButton(QMessageBox::No); msg.setParent(this); msg.setWindowFlags(Qt::WindowStaysOnTopHint | Qt::Dialog); msg.setIcon(QMessageBox::Question); if(msg.exec()==QMessageBox::No) return; // Proceed with the application closure here.
This is just one example. There are many places in the application where I have used such QMessageBox to get user response.
On IOS, the latest version 11.4.1, I see that the QMessageBox shows but when i want to press the buttons, nothing happens. The application just hangs.
On the earlier version of IOS, this was working. I already have an App on the play store and this works.
This also works well on all other OS.
Does anyone have some suggestions for a solution?
Did you change the version of Qt used ?
What version is it ?
Does it also happen if you do that from a default application ?
No. I have not changed the Qt version. it is 5.10.1. however, I had to change the IOS version as it forces upgrading to newer versions and also corresponding change in XCode version to the latest.
The messagebox works the first or second time. WHen this problem happens, first thing that happens is that even after pressing the button where the message box is programmed, it takes longer than usual time for the message box to popup. I need to touch the screen once or twice and then when the messagebox popups, it hangs. I have to close the App completely.
Is that something to do with Queueing of commands or ?
And I did not understand what you meant by a default application. Do you mean to say just a blank application with just the messagebox? If that is what you meant, I have not tried that. I will try that and let you know what happens.