I had a confusing problem on Mac with Qt 4.8 and as a side note but it works 
with 5.2.

If I start the following application I get the "test print" immediately after 
the start.
If I start my test application with "modal" the "test print", comes if I close 
the window.
What is the cause? (Does it creates an own event loop on mac? why does it work 
on windows and linux?)


#include <QWidget>
#include <QApplication>
#include <QDebug>

class TestWidget : public QWidget
{
    Q_OBJECT
public:
    TestWidget() {
        QMetaObject::invokeMethod(this, "printTest", Qt::QueuedConnection);
    }
public slots:
    void printTest() { qDebug() << "test print"; }
};


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    TestWidget* myTest = new TestWidget();
    if (a.arguments().contains("modal"))
        myTest->setWindowModality(Qt::WindowModal);
    myTest->show();
    return a.exec();
}

#include "main.moc"

PS: In the documentation even in Qt 5.x There is some strange comment at 
WindowModality: "This property only makes sense for windows." <- which is not 
true, or I am wrong?
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to