|
1Qter豆
本帖最后由 changtj 于 2016-10-25 18:15 编辑
[img]file:///C:\Users\changtj\AppData\Roaming\Tencent\Users\2992599419\QQ\WinTemp\RichOle\5@}(6$GK6{WR3[3XAU66[O0.png[/img]
哪位可以指导一下,第14行设为 modal 第15行show 后,运行到了25行。本想实现的效果是运行到了15行就不再往下执行了
想用QuickDialog,但发现20行的qobject_cast转换失败,搜索了下quickdialog没有默认安装,需要再单独下载- main.cpp
- #include <QApplication>
- #include <QQmlApplicationEngine>
- #include <QQuickView>
- #include <QQuickItem>
- #include <QDialog>
- int main(int argc, char *argv[])
- {
- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
- QApplication app(argc, argv);
- QQuickView * pQuickView = new QQuickView();
- pQuickView->setSource(QUrl(QLatin1String("qrc:/login.qml")) );
- pQuickView->setModality(Qt::ApplicationModal );
- pQuickView->show();
- //QQuickItem * rootItem = pQuickView->rootObject();
- // QObject * pObj = rootItem->findChild<QObject*>("dialogLogin");
- //QDialog *pQDialog = qobject_cast<QDialog *>(pObj);
- // pQDialog->exec();
- //QObject * pObj = rootItem->findChild<QObject*>("quitButton");
- QApplication::processEvents();
- QQmlApplicationEngine engine;
- engine.load(QUrl(QLatin1String("qrc:/main.qml")));
- return app.exec();
- }
复制代码- login.qml
- import QtQuick 2.7
- import QtQuick.Dialogs 1.2
- import QtQuick.Controls 1.4
- import QtQuick.Window 2.2
- Window{
- LoginForm {
- Dialog{
- objectName:"dialogLogin";
- }
- }
- }
复制代码- loginForm.ui.qml
- import QtQuick 2.7
- import QtQuick.Controls 2.0
- import QtQuick.Layouts 1.0
- Item {
- width: 400
- height: 400
- TextInput {
- id: textInput1
- x: 107
- y: 85
- width: 80
- height: 20
- text: qsTr("Text Input")
- font.pixelSize: 12
- }
- }
复制代码 |
|