Qt 示例学习--3 gallery quick controls

本文档介绍了Qt中的一个复杂示例,涉及QQmlApplicationEngine与QQuickView的区别,详细解析了main.cpp和main.qml的使用。同时,探讨了qml/ButtonPage.qml中的Button与Menu结合,Switch控件的应用。在qml/ProgressPage.qml中学习了ProgressBar的不确定进度展示和BusyIndicator。最后在qml/InputPage.qml中提到了TextField的密码回显模式、ComboBox的可编辑性及SpinBox的小数位设置。
摘要由CSDN通过智能技术生成

示例介绍

之前看到的示例都比较简单,这次搞一个相对复杂的例子:
图片

具体介绍

1 main.cpp

int main(int argc, char *argv[])
{
    QtQuickControlsApplication app(argc, argv);
    if (QCoreApplication::arguments().contains(QLatin1String("--coreprofile"))) {
        QSurfaceFormat fmt;
        fmt.setVersion(4, 4);
        fmt.setProfile(QSurfaceFormat::CoreProfile);
        QSurfaceFormat::setDefaultFormat(fmt);
    }
    QQmlApplicationEngine engine(QUrl("qrc:/main.qml"));
    return app.exec();
}

这里使用QQmlApplicationEngine,之前示例1中使用的是QQuickView ,可以看到QQuickView中用到了view.engine()即QQmlEngine类型的,是QQmlApplicationEngine的父类。
查看相关帮助:

Unlike QQuickView, QQmlApplicationEngine does not automatically create a root window. If you are using visual items from Qt Quick, you will need to place them inside of a Window.

2 main.qml

import QtQuick 2.2
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1
import QtQuick.Controls 1.2
import "qml/UI.js" as UI 
/* UI.js内容
.pragma library
var margin = 2
var tabPosition = Qt.TopEdge
var label = ""
*/

import "qml" // 引入整个目录

ApplicationWindow { // 如QQmlApplicationEngine帮助中说的,这里需要自己定义一个Window
    visible: true
    title: "Qt Quick Controls Gallery"

    width: 640
    height: 480

    MessageDialog { // 帮助对话框
        id: aboutDialog
        icon: StandardIcon.Information
        title: "About"
        text: "Qt Quick Controls Gallery"
        informativeText: "This example demonstrates most of the available Qt Quick Controls."
    }

    Action { // 定义几个Action
        id: copyAction
        text: "&Copy"
        shortcut: StandardKey.Copy
        iconName: "edit-copy"
        enabled: (!!activeFocusItem && !!activeFocusItem["copy"])
        onTriggered: activeFocusItem.copy()
    }

    Action {
        id: cutAction
        text: "Cu&t"
        shortcut: StandardKey
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值