2016-01-12 2 views
1

Я пытаюсь реализовать всплывающее окно подтверждения в приложении с использованием QtQuick 1.1, это означает, что у меня нет доступа к QtQuick Dialogs. Как я могу это реализовать? Я не мог найти что-нибудь в документацииСоздание всплывающего диалогового окна в QtQuick 1.1

ответ

4

Вы можете сделать ваше приложение QML к QWidget, зарегистрировать этот виджет как объект контекста, и подвергать статические методы QMessageBox для создания диалога:

class QmlWidget : public QQuickWidget // or QWidget + QQuickView combination 
{ 
... 
public: 
    void warning(const QString& title, const QString& message, ...) 
    { 
     QMessageBox::warning(this, title, message, ...); 
    } 
}; 

int main() 
{ 
    QmlWidget w; 
    auto engine = w.engine(); 
    auto ctx = engine.rootContext(); 
    // expose w to qml 
    ctx->setContextProperty("qmlwidget", &w); 
    w.show(); 
    return app.exec(); 
} 

В QML:

Item { 
    Component.onCompleted: qmlwidget.warning() 
} 

Или вы можете просто написать экран блокировки Rectangle с Text элементов и кнопок. Или просто обновите приложение в QtQuick 2.x!