Qt使用教程:使用Qt Quick UI表单(三)

原创|使用教程|编辑:龚雪|2016-02-23 09:26:07.000|阅读 1263 次

概述:本教程介绍如何使用ui.qml文件开发一个应用程序,使应用程序逻辑从UI中分离。该教程使用Qt Quick Designer实现一个简化版的UI表单示例,它为一个客户数据库提供接口,只用QML和JavaScript编写。

相关链接:

<Qt Enterprise最新版下载>

实现主视图的应用逻辑

新项目向导将模板代码添加到main.qml文件中来创建菜单项和按钮。通过删除旧的代码和添加新的代码修改模板代码。您可以从UI表单中删除按钮,同时还需要从main.qml中删除相应的代码(或应用程序不能被创建)。

指定主视图的大小

该向导将创建一个ApplicationWindow类型和一个MainForm类型来指定应用程序主视图。输入应用程序的名称作为标题属性的值。当按钮被点击时,通过删除旧的行所调用函数来清理MainForm代码:

MainForm {
anchors.fill: parent
button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
}

ApplicationWindow类型中删除width和height属性,并在MainForm类型中使用一个布局类型来设置主视图的最小值和首选大小。想要使用布局,可导入QtQuick Layouts:

import QtQuick.Layouts 1.1

然后指定MainForm的以下属性:

MainForm {
anchors.fill: parent
Layout.minimumWidth: 800
Layout.minimumHeight: 480
Layout.preferredWidth: 768
Layout.preferredHeight: 480
创建表视图模型

在表视图中使用列表模式显示客户数据。因为列表模式是从几个不同的.qml文件中读取的,通过在CustomerModelSingleton.qml中定义一个singleton类型并在main.cpp注册来访问它。这样,就不必依赖QML context作用域规则来访问列表模型。

1.在Projects视图中,右键单击qml.qrc并选择Add New > Qt > QML File (Qt Quick 2)来创建CustomerModelSingleton.qml文件并将其添加到项目中。

2.从CustomerModelSingleton.qml中复制实现。

3.在main.qml中添加以下代码到MainForm来访问列表模型:

tableView1.model: CustomerModel

Component.onCompleted: CustomerModel.selection = tableView1.selection

4.在main.cpp文件中注册singleton类型,包含Qt QML模块并在初始化函数中调用qmlRegisterSingletonType()函数:

...
#include <QtQml>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QUrl resourceUrl(QStringLiteral("qrc:/CustomerModelSingleton.qml"));
qmlRegisterSingletonType(resourceUrl, "my.customermodel.singleton", 1, 0, "CustomerModel");

5.在main.qml中想要使用已经注册的singleton类型,您必须导入singleton类型:

import my.customermodel.singleton 1.0
购买Qt Enterprise最新正版授权!详情请"咨询在线客服"
新年新禧新气象,送礼送福送优惠!优惠详情点击查看>>


标签:跨平台UI界面C/C++

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:慧都控件网

登录 慧都网发表评论


慧都网友 2016-02-23 11:39:06.000
0

Qt在很多方面都非常强大,无论是嵌入式开发还是移动开发,都非常不错!


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Qt Enterprise

Qt是一个跨平台的C++图形用户界面应用程序开发框架。

在线
客服
在线
QQ
电话
咨询
400-700-1020
购物车 反馈 返回
顶部
在线客服系统
live chat