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

把其他.ui文件拿到我的工程中使用

在Qt工程中使用工程外的ui文件的方式:作为一个类直接使用、包含到自己的类中或继承使用
将ui文件添加到工程中,作为一个类以直接使用

注:这里指使用原本不属于该工程的ui文件

第一步:在工程文件.pro中添加UI文件
在.proj文件中添加:

FORMS += PATH/ui_file_1.ui  \
         PATH/ui_file_2.ui
         
FORMS表示添加ui文件到本工程中
对于多个UI文件,使用续航符’\’来连接多行

注意:应该对UI文件执行uic命令,以生成UI对应的.h文件,在.h文件中有命名空间Ui及其内部包含的ui类名称,这个命名空间和类名称可以在源文件中用来引用UI对象
第二步:在代码中引用UI文件对象

class MyClass : public QWidget
{
    Q_OBJECT
public:
    MyClass();

private:
    Ui_Foo ui;
};

第二步:在该类的构造函数中setupUi()

MyClass::MyClass(QWidget* parent) : QWidget(parent)
{
    ui.setupUi(this);   //初始化并加载ui文件
    ...;
}

**实质:将UI文件对应的ui类(通过uic工具从ui文件转得.h文件)包含到自己的类里面作为private成员来使用
继承ui对象
注意:一般来说,为了软件架构良好设计,一般不使用多继承(避免耦合、复杂性等),非用不可,应该考虑使用多次单继承来替代。

当类继承了ui类后,由于本身需要继承QWidget等类,因此为多继承。**

第一步:在自定义的类中继承Ui类
注意:Qt多继承必须将Qt库的类放到第一个,因为Qt默认要求第一个类为QObject的子类

class MyClass : public QWidget , public Ui_Foo  //多重继承
{
    Q_OBJECT
public:
    MyCLass(QWidget * parent = 0);
...
};

第二步:在构造函数中增加ui.setupUi(this)初始化Ui文件
由于继承了Ui类,即Ui类的所有方法被继承,可以直接使用而不用加上实例名称:如使用setupUi(this)而不是ui.setupUi(this)。

总结
都需要利用uic文件来将ui文件转换为C++源文件
都是通过ui类来引用UI文件对象
都需要在工程文件.pro中添加FORMS表示添加ui文件

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/realdonaldtrump/article/details/78212095


http://www.kler.cn/news/359307.html

相关文章:

  • 100多种【基于YOLOv8/v10/v11的目标检测系统】目录(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)
  • 每天练打字7:今日状况——常用字后五百击键3.5第2遍进行中,赛文速度95.65
  • 【截流软件】采集短视频关键词笔记下的筛选评论
  • 一文了解供应链攻击
  • GitHub每日最火火火项目(10.21)
  • Python学习---高效字符串处理技巧
  • 鸿蒙ArkTS中的资源管理详解
  • oceanbase的日志量太大,撑爆磁盘,修改下日志级别
  • Unity--AssestBundles--热更新
  • 【 用python写一个把视频每一帧提取为png图片】
  • 【鸡翅Club】项目启动
  • HAL+M4学习记录_8
  • MySQL常见优化策略
  • xRDP – 在 Ubuntu 18.04、20.04、22.04、22.10、23.04(脚本版本 1.4.7)上轻松安装 xRDP
  • 如何使用外呼电话机器人的功能可以更高效的获客?
  • 高可用之限流-07-token bucket 令牌桶算法
  • hive on tez 指定队列后任务一直处于running状态
  • 开发规范 - mac系统1小时装机极速装机开发环境
  • 软件定义汽车时代,当前智能汽车软件开发模式是什么?
  • 探究互联网数字化商品管理变革:从数据化到精准运营的路径转型