在QtQuick 1.1中创建弹出对话框

时间:2016-01-12 09:03:26

标签: qt qml qt-quick

我正在尝试使用QtQuick 1.1在应用程序中实现弹出确认框,这意味着我无法访问QtQuick Dialogs。我将如何实现这一目标?我在文档中找不到任何内容

1 个答案:

答案 0 :(得分: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!