0


将Qt Design Studio中创建的UI文件导入Qt Creator中

将Qt Design Studio中创建的UI文件导入Qt Creator中

一、导入流程

从Qt Design Studio中创建了UI文件,我这里是跟着官方文档示例做的一个ui文件Loginui1。

在Qt Creator中创建新的项目:创建项目
在这里插入图片描述
我这里将项目取名为Import_UI

创建好后的项目结构:

在这里插入图片描述
右键main.qml 选择Remove
在这里插入图片描述
这里确定,也可以勾选彻底删除,之后不会用到这个文件。

接着还要弹窗,我们选择,将main.cpp保存下来,之后需要修改部分代码。

在这里插入图片描述
此时项目文件目录如下:

在这里插入图片描述
找到Import_UI项目的资源文件夹(此处qml.qrc没有也无所谓):

在这里插入图片描述
在此新建一个文件夹名为qml(其他名字也可以):

在这里插入图片描述
找到在Qt Design Studio中做好的UI文件目录,将content、imports文件夹复制到Import_UI项目中的qml文件夹中去

在这里插入图片描述
复制好的qml文件夹
回到Qt Creator中,右键qml.qrc选择添加现有文件夹,直接勾选qml文件夹,确定即可

在这里插入图片描述
在这里插入图片描述
导入资源后,文件目录结构如下:
在这里插入图片描述
此时UI资源文件已经导入完了,需要在main.cpp进行编辑调用UI文件。参考官方文档进行编辑。

#include<QGuiApplication>#include<QQmlApplicationEngine>#include<QQuickView>intmain(int argc,char*argv[]){QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQuickView view;
    view.engine()->addImportPath("qrc:/qml/imports");
    view.setSource(QUrl("qrc:/qml/content/Screen01.ui.qml"));if(!view.errors().isEmpty())return-1;
    view.show();

    app.exec();}

解释一下这两句的参数:
view.engine()->addImportPath(“qrc:/qml/imports”);
view.setSource(QUrl(“qrc:/qml/content/Screen01.ui.qml”));
qrc:/qml/imports 就是 qml/中的imports文件夹的路径
在这里插入图片描述
qrc:/qml/content/Screen01.ui.qml 是UI文件的开始文件我这里就是Screen01.ui.qml
在这里插入图片描述
至此,就可以运行在项目中成功运行UI了文件了。


二、运行时遇到的问题及解决

可能出现的问题:QtQuick.Studio.Application

没错,还有问题,此处应该是Qt Design Studio和Qt Creator版本问题,可能遇到如下问题:
在这里插入图片描述
找不到这个QtQuick.Studio.Application
我尝试过直接在Qt Creator中导入它,但它提示似乎需要6.4.0才能使用,我是安装的6.3.2,由于网络抽搐下载不了6.4.0,不知道高版本是否不会出现此问题。

解决方法

点击链接打开报错文件:
在这里插入图片描述
这个文件主要描述了自定义字体的安装,我创建的每个UI工程都会有它。
如果没有使用到自定义字体,那么直接删除红框内容,运行文件即可。
在这里插入图片描述
如果需要使用自定义字体,还需要在qml文件中添加一句(在框中的任意一个qml文件添加都可以,只需要添加一次,不用每个都添加):

 FontLoader {
     source:"qrc:/qml/content/fonts/TitilliumWeb-ExtraLight.ttf"}

在这里插入图片描述

这个路径就是字体文件的路径
在这里插入图片描述
至此,成功运行程序,且字体也应用成功。

标签: qt ui

本文转载自: https://blog.csdn.net/JaniusB/article/details/129451506
版权归原作者 JaniusB 所有, 如有侵权,请联系我们删除。

“将Qt Design Studio中创建的UI文件导入Qt Creator中”的评论:

还没有评论