海尔顺逛微店能赚钱吗:QML总结(下)--引用网上资源
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 16:38:21
QML调研续
2011.6.24
1.数据类型与视图...................................... 2
1.1 列表视图ListView示例........................... 2
1.2网格视图 GridView示例........................... 3
1.3路径视图 PathView示例........................... 6
1.4 Flickable...................................... 7
2.QML与QT/C++交互.................................... 7
1.示例一:QML调用C++中设置好的元素................. 8
2.示例二:......................................... 9
3. QML程序打包运行................................... 13
1.数据类型与视图
QML使用了与Qt中Model-View类似的结构,即模型—视图结构。模型可以是QML的简单数据,或者复杂的C++数据。具体有:
QML: ListModel, XmlListModel, VisualItemModel
C++: QAbstractItemModel, QStringList, QList
视图显示模型提供的数据,主要有:ListView, GridView, PathView
Model定义好数据,通过Delegate来描述Model中每条数据在View具体显示的控件。
1.1 列表视图ListView示例
运行效果图:
1.2网格视图 GridView示例
运行效果图:
1.3路径视图 PathView示例
1.4 Flickable
可以让它的孩子元素可以被拖拽和滚动,但却不用创建一个MouseArea或者处理鼠标事件。好处:Flickable界面很容易通过属性配置,flickDirection, flickDeceleration,horizontalVelocity, verticalVelocity,boundsBehavior,… 很多QML元素默认是flickable
2.QML与QT/C++交互
具体描述参见上一个调研报告,以下是具体示例。
1.示例一:QML调用C++中设置好的元素
运行结果:
2.示例二:
运行结果:
3.QML程序打包运行
QT有动态编译和静态编译之分。
动态引用编译,是指相关的库,以dll的形式引用库。动态编译的Exe程序尺寸比较小,因为相关的库都没有包含进来。当然,程序发布的时候,还要把相关的库也一并发布出去。
静态引用编译,是指把相关的库也一并引入Exe文件。这是程序的尺寸就会很大,不过,程序发布就会变得简单很多。
Tips:QT的静态编译的配置网上有各种各样的方法,我试了好几个,最终成功了。过程相当麻烦,好像也没有官方的说法,所以就挨个试。
以下是具体步骤:
首先是设置变量:
set QTDIR=%Dir%
set PATH=%PATH%;%QTDIR%\bin
set QMAKESPEC=win32-msvc2008
"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86
配置makefile:
configure -release -static -fast -qt-sql-odbc -qt-sql-sqlite
然后就是o,y(这个地方会很有可能过不去,我试了三种不同的方法才过去的。主要原因我分析有以下几种:环境变量配置出错,出来上面几个必须的,qt下的lib、include、bin目录都要配置上。再有就是vs的bin目录也要配置上。)
nmake
然后就是漫长的等待(我是用了两个小时,网上说有五个小时的)
然后发发现lib下果然只有一大堆lib文件了,而且每个lib文件的尺寸都在M以上,似乎已经成功了。然后我们在安装了qt-vsintegration的VC2008新建一个Qt工程,然后编译一个release版本。
这样生成的exe就可以直接在其他机子上运行了。
但是有另外一个问题:这都是网上针对qt说的,我尝试过后,对于qml文件还是不能打包进exe文件,只能是exe文件和qml文件一起才能运行。暂时还没找到解决办法。但是可以在其他机子上点击exe直接运行了。