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);return widget;}return QUiLoader::createWidget(className, parent, name);}
};

加载ui,

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RibbonGroup添加QCheckBox

RibbonGroup添加 QCheckBox: QCheckBox* pCheck new QCheckBox(tr("Check")); pCheck->setToolTip(tr("Check")); groupClipboard->addWidget(pCheck); connect(pCheck, SIGNAL(stateChanged(int)), this, SLOT(checkClick(int))); …

[学习笔记]刘知远团队大模型技术与交叉应用-汇总

参考资料: 视频:【清华NLP】刘知远团队大模型公开课全网首发|带你从入门到实战 课程计划 L1-NLP&Big Model Basics [学习笔记]刘知远团队大模型技术与交叉应用L1-NLP&Big Model Basics L2-Neural Network Basics [学习笔记]刘知…

微调深度学习模型:初级指南

引言 在深度学习领域,微调(Fine-tuning)是一种常见的实践,旨在优化预训练模型以适应特定任务或数据集。这对于那些希望利用已有模型来解决类似问题的初学者而言,是一个非常有用的技巧。 预训练模型的选择 微调开始于选…

计算机二级Python基本排序题-序号42(补充)

请在屏幕上输出以下杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 a [] for i in range(8) :a.append([])for j in range(8) :a[i].append(0) for i in range(8) :a[i][0] 1a[i][i] 1 for i in range(2, 8) :f…

【Java JVM】栈帧

执行引擎是 Java 虚拟机核心的组成部分之一。 在《Java虚拟机规范》中制定了 Java 虚拟机字节码执行引擎的概念模型, 这个概念模型成为各大发行商的 Java 虚拟机执行引擎的统一外观 (Facade)。 不同的虚拟机的实现中, 通常会有 解释执行 (通过解释器执行)编译执行 (通过即时编…

Github Copilot最全的安装与使用教程:一款非常好用的AI编程工具

Github Copilot最全的安装与使用教程 第一章 安装1.安装 GitHub Copilot2.获取资格第二章 使用1.产生建议1.1 键入你想要完成的操作的注释1.2 CtrlI 2. 接受建议3.查看下一个建议3.接受部分建议4.在新选项卡接受建议5.完成多项功能6.聊天 GitHub Copilot 供经过验证的学生、教师…

C++中的23种设计模式精讲

目录 1 单例模式2 工厂方法模式3 抽象工厂模式4参考 1 单例模式 题目链接为&#xff1a;小明的购物车 C代码如下&#xff0c; #include <iostream> #include <string> #include <vector>using namespace std;class ShoppingCart { public:static Shopping…

C语言经典算法之直接排序算法

目录 前言 一、代码实现 二、时空复杂度 时间复杂度&#xff1a; 空间复杂度&#xff1a; 前言 建议&#xff1a;1.学习算法最重要的是理解算法的每一步&#xff0c;而不是记住算法。 2.建议读者学习算法的时候&#xff0c;自己手动一步一步地运行算法。 tips:希尔排序算…

利用反射获取websocket,session字段的值

首先利用反射获取方法字段&#xff0c;然后取得字段的值 private static ConcurrentHashMap<String, Session> map new ConcurrentHashMap<>();OnOpenpublic void onOpen(Session session) throws IllegalAccessException {log.info(session.getId() "开始连…

Flask架构--路由和蓝图

学习视频&#xff1a;第二章&#xff1a;路由和蓝图 1 Flask查询路由的方式_哔哩哔哩_bilibili 参考&#xff1a;Flask框架之路由与蓝图的使用_flask 路由和蓝图-CSDN博客 1.路由的概念&#xff1a; 用于将http请求与特定的python函数相匹配。定义路由后&#xff0c;flask程…

模型索引:QModelIndex

一、为什么要使用模型索引&#xff1f; 从名字可以看出&#xff0c;他是模型的索引&#xff0c;只要对模型实体&#xff08;各种xxxModel的实体&#xff09;施加这个索引&#xff0c;model就会返回数据集中对应的值&#xff0c;或者通过这个索引修改对应数据集中的值。 类比数…

Java内容

目录 1.命名规范 1.命名规范 2.变量

懒得玩游戏--帮我做数独

目录 简介自动解数独思路核心思路输入解析打印 完整代码 简介 最近玩上了一款类似于数独的微信小程序游戏&#xff0c;名字叫数独趣味闯关&#xff0c;过了数独的关卡之后会给拼图&#xff0c;玩了几关之后摸清套路了就有点累了&#xff0c;但是还想集齐拼图&#xff0c;所以就…

【AUTOSAR】--01 AUTOSAR网络管理基础

AUTOSAR网络管理做了几个项目了&#xff0c;但发现还是有些理解不够深入的地方&#xff0c;最近趁着有个新项目也要做AUTOSAR网络管理&#xff0c;再从头梳理一下AUTOSAR网络管理&#xff0c;预计用2-3篇文章&#xff0c;把AUTOSAR网络重新梳理完成。 这是第一篇&#xff0c;主…

C //练习 4-13 编写一个递归版本的reverse(s)函数,以将字符串s倒置。

C程序设计语言 &#xff08;第二版&#xff09; 练习 4-13 练习 4-13 编写一个递归版本的reverse(s)函数&#xff0c;以将字符串s倒置。 注意&#xff1a;代码在win32控制台运行&#xff0c;在不同的IDE环境下&#xff0c;有部分可能需要变更。 IDE工具&#xff1a;Visual S…

Element-Puls Form表单内嵌套el-table表格,根据表格复选框多选或单选动态设置行的验证规则

需求 根据 Table 表格内的复选框来控制当前选中行是否添加必填校验规则 效果图 实现思想 我们需要设置一个 flag 来标识已勾选的行&#xff0c;el-table渲染数据结构是数组对象形式&#xff0c;我们可以在每个对象中手动加如一个标识&#xff0c;例如默认&#xff1a;selected …

Windows环境 elasticsearch 及可视化界面 安装

安装 elastic 的官网 elastic.co/downloads/elasticsearch 当你解压好了归档文件之后&#xff0c;Elasticsearch 已经准备好运行了。按照下面的操作&#xff0c;在前台(foregroud)启动 Elasticsearch&#xff1a; cd elasticsearch-<version> ./bin/elasticsearch 如…

大型语言模型综述/总结 LLM A Survey of Large Language Models

A Survey of Large Language Model AbstractINTRODUCTIONOVERVIEW背景LLM的新兴能力LLM的关键技术GPT 系列模型的技术演进 大语言模型资源公开可用的模型检查点或 API常用语料库代码库资源 预训练数据收集架构 论文标题&#xff1a;A Survey of Large Language Model 论文地址&…

详谈Python的开发工具

Python作为一种流行的编程语言&#xff0c;在开发过程中需要使用各种工具来提高效率、简化工作流程和改善开发体验。在本文中&#xff0c;我们将介绍一些常用的Python开发工具&#xff0c;包括文本编辑器、集成开发环境&#xff08;IDE&#xff09;、虚拟环境管理工具、包管理器…

git常用命令集合及其演示

文章目录 一.git常用命令集合及其演示1.git config --list 查看配置信息2.git status 查看当前仓库的状态3.git add . 加到暂存区4.git commit -m "描述信息" 添加到版本库5.git diff xxxx 查看xxxx文件修改了哪些内容&#xff0c;相比于暂存区的区别6.git rm --cach…