Qt学习笔记外观篇(五):子类化窗口部件类

QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置 一、QWidget类中的坐标系统成员函数 Qt中的几何坐标以左上角为原点,其中的GUI组件以左上角进行定位 1.1 表示窗口左上角位置和客户区的长宽 ——x()//窗口左上角的横坐标 ——y()//窗口左上角的纵坐标 ——width() //表示客户区的宽度 ——height()//表示客户区的高度 1.2 表示客户区左上角位置和客户区长宽 ——geometry()//客户区的位置... 阅读详情

 如前所述,自定义外观的第三种方法是子类化窗口部件类。子类化窗口类适用于能够经常使用的,具有鲜明特性的部件。子类化窗口类更多的适用于定制功能而非外观。

 子类化窗口部件类的过程就是重新实现事件处理函数的过程。

 下面是自定义圆形按钮类:

 

 class RoundButton : public QPushButton
 {
    Q_OBJECT

 public:
    RoundButton(QWidget * parent = 0);
    RoundButton(const QString & text, QWidget * parent = 0);
    RoundButton(const QIcon & icon,const QString & text ,QWidget * parent = 0);

    virtual ~RoundButton();
	QSize sizeHint();
	QSize minimumSize();
    void setColor(QColor color)         { m_color = color; }
    void setHighlight(QColor highlight) { m_highlight = highlight; }
    void setShadow(QColor shadow)       { m_shadow = shadow; }

    //Range: 0.0 [invisible] - 1.0 [opaque]
    void setOpacity(qreal opacity)        { m_opacity = opacity; }

    //Range: 0 [rectangle] - 99 [oval]
    void setRoundness(int roundness)      { m_roundness = roundness; }

 protected:
    void paintEvent(QPaintEvent * pe);
     //void drawButton(QPainter* pe);
    void enterEvent(QEvent * e);
    void leaveEvent(QEvent * e);

    void mousePressEvent(QMouseEvent * e);
    void mouseReleaseEvent(QMouseEvent * e);

 private:
    QRect calculateIconPosition(QRect button_rect, QSize icon_size);
	void adjustGeometry();

 private:
    boo
QT中setWindowFlags和 setAttribute使用详解及注意问题 1. setWindowFlags(QT::WindowFlags)主要设置一些窗口标志,平常开发中主要有两类需求: 1.1 将某一子窗口设置为最顶层窗口。 使用Qt::Tool 属性:setWindowFlags(Qt::Tool) 1.2 重新定义窗口的属性,比如:取掉最大、最小、关闭等按钮,或者直接使用无边框窗口 ... 阅读详情

相关推荐

Qt学习笔记外观篇(六):QLabel

QLabel非常简单,且非常实用。

wangyanphp的专栏 1万+

Qt学习笔记外观篇(一):QPalette调色板

窗口部件外观的自定义,一个很重要的方面就是颜色的

wangyanphp的专栏 5495

Qt学习笔记外观篇(七):QCheckBox

QCheckBox作为一个常用的窗口部件,

wangyanphp的专栏 1万+

Qt常用基础控件总结—旋转框部件(QSpinBox类和QDoubleSpinBox类)

1)accelerated:bool 访问函数:bool isAccelerated() const;此属性用于描述当按下旋转框的“向上/向下”按钮一段时间不放时,是否会加快调整旋转框中数值增加/减少的速度。默认为 false。2)acceptableInput:bool 访问函数:bool hasAcceptableInput() const;此属性用于获取输入的值是否满足当前验证器的要求。访问函数:Qt::Alignment alignment() const;

qq_37464701的博客 1225

Qt学习笔记外观篇(三):Qt Style Sheet

前文中讲到了自定义外观的

wangyanphp的专栏 7938

子类化QLabel显示图片并在label上画矩形截图并显示

子类化QLabel显示图片并在label上画矩形截图并显示,..a...d........

控件子类化的消息处理

控件子类化以后,只能处理标准的wm消息,对通过资源ID向父窗口的消息不能处理。 附录:孙皓等编著的《visual c++ 范例大全》的实例62有误。

电力现货市场出清机制解析:从理论到实践(附节点电价计算实例)

本文深入解析电力现货市场的核心出清机制,重点阐述了节点边际电价的计算原理与实践方法。通过对比系统边际电价、节点边际电价和分区边际电价三种模式,揭示了市场出清价格如何反映电力供需与网络阻塞。文章结合IEEE 30节点系统,提供了基于MATLAB和最优潮流模型的计算实例,详细展示了从构建模型到求解对偶变量以获取节点电价的全过程,为理解电力市场定价机制提供了从理论到实践的完整路径。

whisky的博客 757

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 535

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 819

数据驱动的老年人健康管理与生活品质提升实践研究

摘要 全球人口老龄化趋势显著,2025年65岁以上人口预计达8.57亿,中国老年人口已突破3亿。老年人健康挑战突出,75%以上患慢性病,且独居老人心理健康与应急需求迫切。数据驱动的健康管理通过智能设备(如跌倒检测、远程监测)和AI技术(如疾病预测算法)提升效率,改善生活品质。研究提出差异化需求解决方案,如慢性病患者的持续监测与用药管理,高龄老人的综合护理服务,并探讨政策与商业模式以推动智慧养老产业发展,2024年市场规模已达6.8万亿元。

聚焦程序设计语言理论与前沿技术落地,拆解代码世界的底层逻辑,探索语言设计的 “创造与沟通” 之道。从编译原理、类型系统到 AI 技术在金融、医疗、制造、养老、大健康等领域的实战案例,分享硬核技术干货与工程化思考。 1631

告别Modern Standby!Win10/11强制S3睡眠的终极指南(含BIOS设置避坑)

本文是针对Windows 10/11用户因Modern Standby(S0低电量待机)导致睡眠耗电、发热问题的终极解决方案。文章详细对比了Modern Standby与传统S3睡眠(Suspend to RAM)的本质区别,并提供了从系统诊断、注册表修改、BIOS/UEFI设置避坑到驱动优化的完整步骤,旨在帮助用户强制启用稳定、省电的S3睡眠模式,彻底告别睡眠噩梦。

n7o8p的博客 802

LlamaIndex 入门实战

LlamaIndex是一个“数据框架”,用于帮助构建LLM应用程序。它提供了各种工具,包括数据连接器,用于摄取现有数据源和数据格式(API,PDF,文档,SQL等),以及用于将数据结构化(索引,图形)以便与LLM轻松使用的方式。此外,LlamaIndex还提供了高级的检索/查询接口,可以输入任何LLM输入提示,并返回检索到的上下文和增强知识的输出。它还允许与外部应用程序框架(如LangChain,Flask,Docker,ChatGPT等)轻松集成。

AIGC搞起 1万+

什么是 SAP Build Process Automation?

SAP Build Process Automation 是一款综合性的低代码工具,允许企业用户快速开发和自动化端到端业务流程。它整合了工作流管理、任务自动化和人工智能技术,提供了一个易于使用的平台,帮助企业更好地应对现代商业挑战。通过该工具,用户无需具备深厚的编程技能即可创建复杂的业务流程。例如,用户可以使用直观的拖放式界面设计流程、设置触发条件、定义任务分配规则,并通过内置的分析功能对流程效率进行评估。流程建模与设计:提供图形化界面,帮助用户直观地设计业务流程。任务自动化。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1259

全15万字丨PyTorch 深度学习实践、基础知识体系全集;忘记时,请时常回顾。

本篇博客介绍的知识是——深度学习之PyThon框架基础。这是深度学习/神经网络的基础,多次回顾,会有不一样的感受。书读百遍,其义自见。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 5788

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Qt学习笔记外观篇(四):Qt 样式表实例
下一篇: Qt学习笔记外观篇(六):QLabel
wangyanphp
博客等级 码龄14年 90粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值