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

QT笔记 - 加载带有提升为自定义部件类的“.ui“文件 - 重写QUiLoader::createWidget()函数

说明

如果ui设计中有提升过小部件,则无法直接使用QUiLoader加载。完成加载需要重新实现UiLoader::createWidget()函数。

函数

  1. virtual QWidget * QUiLoader::createWidget(const QString & className, QWidget * parent = Q_NULLPTR, const QString & name = QString())

释义

  1. 该函数完全由Qt系统自行调用,为非用户函数,但用户可以重新实现该函数。Qt在根据ui文件创建类对象时调用该函数。形参释义:className:Qt想要创建类对象的类的名称;parent:该对象必须设置的parent;name:该对象必须设置的对象名(需使用函数setObjectName()设置)。

示例

下面是类的实现,其中“MyTextEdit ”作为自定义的提升小部件类

//自定义小部件
class MyTextEdit : public QTextEdit
{Q_OBJECT
public:MyTextEdit(QWidget * parent = nullptr) : MyTextEdit(parent){}
};//自定义QUiLoader派生类
#include "QUiLoader"
class CustomClassUiLoader : public QUiLoader
{Q_OBJECTpublic:CustomClassUiLoader(QObject * parent = Q_NULLPTR);//重写createWidget()类QWidget * createWidget(const QString & className, QWidget * parent = Q_NULLPTR,const QString & name = QString()){if(className == "MyTextEdit"){MyTextEdit* widget = new MyTextEdit(parent);widget->setObjectName(name);widget->setEdit(info.textEdit );return widget;}return QUiLoader::createWidget(className, parent, name);}
};

加载ui,

    QUiLoader uiL;QFile file("C:\\Users\\Administrator\\Desktop\\untitled2\\form.ui");file.open(QFile::ReadOnly);QWidget * widget = uiL.load(&file, ui->textEdit);QVBoxLayout  * layout = new QVBoxLayout;layout->addWidget(widget);layout->setContentsMargins(0, 0, 0, 0);file.close();ui->frame->setLayout(layout);

http://www.lryc.cn/news/277901.html

相关文章:

  • 开启Android学习之旅-2-架构组件实现数据列表及添加(kotlin)
  • leetcode 动态规划(最后一块石头的重量II、目标和、一和零)
  • JavaWeb-HTTP
  • 算法训练营第四十二天|动态规划:01背包理论基础 416. 分割等和子集
  • 前端 JS篇快问快答
  • vue/vue3/js来动态修改我们的界面浏览器上面的文字和图标
  • MobaXterm SSH 免密登录配置
  • 霍兰德职业兴趣测试:找到与你性格匹配的职业
  • LVGL学习笔记 显示和隐藏 对象的属性标志位 配置
  • cuda上使用remap函数
  • 【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解
  • ElasticSearch学习笔记-SpringBoot整合Elasticsearch7
  • [足式机器人]Part2 Dr. CAN学习笔记 - Ch02动态系统建模与分析
  • 【一周年创作总结】人生是远方的无尽旷野呀
  • 金融帝国实验室(Capitalism Lab)V10版本游戏平衡性优化与改进
  • [SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类
  • 北京大学 wlw机器学习2022春季期末试题分析
  • 前端文件下载方法(包含get和post)
  • 高性能、可扩展、支持二次开发的企业电子招标采购系统源码
  • 2645. 构造有效字符串的最少插入数
  • C#,快速排序算法(Quick Sort)的非递归实现与数据可视化
  • 【操作系统xv6】学习记录2 -RISC-V Architecture
  • C++力扣题目111--二叉树的最小深度
  • 【图像拼接】源码精读:Adaptive As-Natural-As-Possible Image Stitching(AANAP/ANAP)
  • 解决docker run报错:Error response from daemon: No command specified.
  • 算法第十二天-最大整除子集
  • 简单易懂的PyTorch 损失函数:优化机器学习模型的关键
  • Kubernetes/k8s的存储卷/数据卷
  • 【漏洞复现】锐捷RG-UAC统一上网行为管理系统信息泄露漏洞
  • Android - 串口通讯(SerialPort)