当前位置: 首页 > news >正文

工程项目网站wordpress模板製作

工程项目网站,wordpress模板製作,重庆网站建设 熊掌号,珠海网站建设案例以实际例子看qmldir的使用 1.搞一个qmldir2.让QML找到你的qmldir (重点).pro 工程文件QQmlApplicationEngine加载主QML处 3.用起来你的模块 qmldir是Qt QML模块化的基石,其设计初衷是为解决QML文件的组织、复用和依赖管理问题,。只需要在每个…

以实际例子看qmldir的使用

  • 1.搞一个qmldir
  • 2.让QML找到你的qmldir (重点)
    • .pro 工程文件
    • QQmlApplicationEngine加载主QML处
  • 3.用起来你的模块

qmldir是Qt QML模块化的基石,其设计初衷是为解决QML文件的组织、复用和依赖管理问题,。只需要在每个文件夹内部搞一个qmldir,在任意qml里import之,就能随意使用这个qmldir下的任何qml文件啦,模块化管理还是很方便的

众所周知把大象塞进冰箱只需要三步,所以qmldir的使用也只需要三步:

1.搞一个qmldir

在这里插入图片描述

我一般会在qrc文件处右键新建,你也可以自己安排

我这里项目目录组织是:

根目录
|
|--工程.pro文件
|--interface # 专门存放QML文件
|   |--xxx.qrc
|	|--BarCustom
|       |--qmldir #每个组件目录下一个qmldir!
|		|--StatusBar.qm
|		|--TitleBar.qml
|		|--TopBarDefines.qml
......

注意qmldir的模块名要和该文件夹名一样,方便QML引擎找到qmldir文件
然后在qmldir填入你要声明的内容、暴露出去使用的qml

# 模块名
module BarCustom # 注意要和文件夹名一样!#命名方式: 类名,  版本, 文件名
StatusBar               1.0   StatusBar.qml  
TitleBar                1.0   TitleBar.qml
#QML的单例声明,需要在.qml头部写pragma Singleton
singleton TopBarDefines 1.0 TopBarDefines.qml 

相当于告诉QML引擎,我这里有一个模块叫BarCustom 里面有StatusBar 1.0 版本,TitleBar 1.0版本…


2.让QML找到你的qmldir (重点)

分别需要改两个东西,一个是 .pro 文件,一个是 main主程序入口的QQmlApplicationEngine处调用addImportPath

> QML引擎是根据``{QML_IMPORT_PATH}\文件夹名``去搜索你的qmldir的,比如说你要引用的``BarCustom``的qmldir 路径是:
E:\SoureCode\myProject\interface\BarCustom\qmldir>那你就要让QML知道qmldir搜索路径在:
{QML_IMPORT_PATH}\interface>qrc:/ 也是如此:
qrc:/UI/  # UI/是我工程里创的,因 .qrc文件就在interface/下,所以指的就是interface/,按实际情况来,下面会讲

.pro 工程文件

参考我上面给的目录结构后,填这个即可,如果你的组件文件夹直接在项目根目录,就$$PWD即可

QML_IMPORT_PATH += $$PWD/interface/

QQmlApplicationEngine加载主QML处

这里我是在main.cpp里加载主QML,根据你的实际情况来就行:

QQmlApplicationEngine engine;
engine.addImportPath("qrc:/UI/");

值得注意的是这个qrc路径怎么填,因为实际上它是按你实际目录配置走,(如果你是接手别人的项目,那你需要注意这点)
什么意思呢?
比如说我加载某一个qml界面用的是

settingPage.source = "qrc:/UI/Setting/MainSetting.qml"

虽然这时候我实际目录结构里并没有UI/ ,但这个UI/ 是项目管理时加的层级,所以在addimportPath时也要加上该目录

engine.addImportPath("qrc:/UI/");

当然,也可以直接看你的 .qrc 文件是怎么填的,最终目的都是根据文件夹名找到对应qmldir
在这里插入图片描述

这一步如果没填对,会报找不到该模块的,可以用以下方法打印看看模块加载路径:.pro文件 编译窗口打印:
message("QML_IMPORT_PATH: $$QML_IMPORT_PATH").cpp 运行打印:
// 获取并打印QML_IMPORT_PATH
QString importPath = qEnvironmentVariable("QML_IMPORT_PATH");
qDebug() << "QML_IMPORT_PATH:" << importPath;

似乎只有engine.addImportPath(“qrc:/UI/”);有效,pro文件里就算指定了所在的绝对目录,都不行,还是说我配置有误?欢迎评论区指正一起进步


3.用起来你的模块

在要使用的qml里添加 import xxxxx(模块名) 1.0(版本号)即可。
如:

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import BarCustom  1.0  //xxxxx(模块名) 1.0(版本号)  都是你qmldir声明的内容

就可以愉快使用你模块下声明的任意一个qml啦

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import BarCustom 1.0 Rectangle {color: TopBarDefines.subColorStatusBar{//...}TitleBar{//......}
}/**********我qmldir的内容:***********/
//定义模块名
module BarCustom # 注意要和文件夹名一样!//命名方式: 类名,  版本, 文件名
StatusBar               1.0   StatusBar.qml  
TitleBar                1.0   TitleBar.qml
//QML的单例声明,需要在.qml头部写pragma Singleton
singleton TopBarDefines 1.0 TopBarDefines.qml 
/***********************************/

当然,每次新添文件后,我都习惯重新构建一次,这样能确保编译到位

http://www.dtcms.com/a/402859.html

相关文章:

  • 做网站需要跟客户了解什么软件家在深圳 歌曲
  • 关于网站建设的调研报告企业seo解决方案
  • 网站开发网络公司兼职百度怎么免费推广自己的产品
  • 网站策划书案例展示游戏网站规划方案
  • 如何在年报网站上做遗失公告樱花16q808a
  • 郴州网站建设解决方案网站 免费 托管运营
  • 网站关键字没有排名素材网站 国外
  • 游戏自助充值网站怎么做网站开发目标开题报告
  • 宁波网站怎么建设wordpress访问过的页码不变色
  • 三门峡做网站的公司建设网站南沙
  • 网站怎样做301购物网站建站系统
  • 如何自建网站?贵州最近爆发的传染病
  • 新郑市住房建设局网站网站建设Skype打不开
  • 专业网站设计制作优化排名ui设计30岁后的出路
  • 做儿童方面的网站wordpress大前端dux5.2
  • 企业网站设计策划案信用网站标准化建设模块都有哪些
  • 有关网站建设有那些功能wordpress爆破软件
  • 做网站的有哪些公司网站开发需不需要考研
  • 自已建网站微信登录网站logo设计教程
  • 赤峰网站建设建站公司企业门户网站运营推广
  • 如何用WordPress建小说站wordpress怎么做301重定向
  • 建站技术服务新建的网站打不开
  • 网站解析后怎么做一般做个网站需要多少钱
  • 办个人网站租空间wordpress邮件发送不出去
  • 云南网站建设网站运营wordpress 总站模板
  • 带注册的网站需要多大空间信阳建设网站
  • 用jsp做电影网站的界面建设网站需要哪些
  • 中国建设银行投诉网站有关建设网站的英语文献
  • 南通网站群建设广州网站推广软件
  • 滨州网站建设公司刷网站建设