- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt自定义窗口部件解析
【原创】Qt自定义窗口部件QtDesigner自定义窗口部件有两种方法:改进法(promotion)和插件法(plugin)改进法1、改进法之前,要先写好子类化QSpinBox后的HexspinBox.h和HexspinBox.cpp文件。把这两个文件拷贝到想要的项目中。HexspinBox.hCpp代码??#ifndef?HEXSPINBOX_H??#define?HEXSPINBOX_H??#include?QSpinBox??class?QRegExpValidator;??class?HexSpinBox?:?public?QSpinBox??{??????Q_OBJECT????public:??????HexSpinBox(QWidget?*parent?=?0);????protected:??????QValidator::State?validate(QString?text,?int?pos)?const;??????int?valueFromText(const?QString?text)?const;??????QString?textFromValue(int?value)?const;????private:??????QRegExpValidator?*validator;??};????#endif???HexspinBox.cppCpp代码??#include?QtGui??#include?hexspinbox.h??HexSpinBox::HexSpinBox(QWidget?*parent)??????:?QSpinBox(parent)??{??????setRange(0,?255);??????validator?=?new?QRegExpValidator(QRegExp([0-9A-Fa-f]{1,8}),?this);??}????QValidator::State?HexSpinBox::validate(QString?text,?int?pos)?const??{??????return?validator-validate(text,?pos);??}????int?HexSpinBox::valueFromText(const?QString?text)?const??{??????bool?ok;??????return?text.toInt(ok,?16);??}????QString?HexSpinBox::textFromValue(int?value)?const??{??????return?QString::number(value,?16).toUpper();??}???2、在需要开发的项目中的窗口中,1、用Qt Designer创建一个新的窗体main.ui,把控件箱里的QSpinBox添加到窗体中。2、右击微调框,选择“Promote to ”上下文菜单。3、在弹出的对话框中,类名处填写“HexSpinBox”,头文件填写“hexspinbox.h”好了。在ui生成的包含有QSpinBox的控件文件中,ui的源代码里面多了一段customwidgets? customwidget? ?classHSpinBox/class? ?extendsQSpinBox/extends? ?headerhspinbox.h/header? /customwidget包含文件变为hexspinbox.h。在Qt Designer中,QSpinBox表示的控件为HexSpinBox,并且可以设置所有的QSpinBox的属性。可以在VS2008中编译一下main.ui文件,从ui_main.h源代码中可以知道,引入的控件是:Cpp代码??#include?QtGui/QTableWidget??#include?QtGui/QToolBar??#include?QtGui/QWidget??#include?hspinbox.h????QT_BEGIN_NAMESPACE????class?Ui_QMainClass??{??public:??????QWidget?*centralWidget;??????QPushButton?*pushButton;??????QTableWidget?*tableWidget;??????QSpinBox?*spinBox;??????HSpinBox?*hspinBox;???? ?升级法的缺点是不能在Qt Designer中设置自定义控件自己的特有属性,也不能够绘制自己。这些问题可以用插件法解决。插件法1.VS中创建Qt4 Design Plugin 工程,名称叫custom自动建立如下几个文件:自定义控件:cust
您可能关注的文档
最近下载
- 2023年中国人民大学信息管理与信息系统专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 2025年一级建造师公路桥梁上部结构装配与架设专题模拟试卷及解析.pdf VIP
- 面向领域适配任务的样本重要性重加权迁移学习算法体系分析.pdf VIP
- 2025年通信工程师DCCP协议拥塞控制机制专题试卷及解析-判断题.pdf VIP
- 多源异构医学数据库融合下的知识图谱构建数据标准与接口协议研究.pdf VIP
- 分层式联邦学习框架在复杂图像分割任务中的结构优化与协议演化.pdf VIP
- 联邦分布式图学习在黑产风险识别系统中的模型构建方案.pdf VIP
- 面向短视频平台的多模态内容分析与语义理解算法深度研究.pdf VIP
- 战略协议合作框架协议(通用10).pptx VIP
- 2025年招标师投标保证金与履约保证金管理的廉政风险点专题试卷及解析.pdf VIP
原创力文档


文档评论(0)