Qt自定义Widget实现互斥效果问题

本文介绍如何在Qt中实现自定义Widget的互斥效果,通过讲解知识点如模拟按钮四态、背景色设置及互斥逻辑,解决新手在开发过程中可能遇到的问题。示例展示了3个自定义Widget,点击时其他Widget背景和文本颜色改变。
摘要由CSDN通过智能技术生成

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

前沿

什么叫做自定义Widget实现互斥效果呢?

在使用Qt做一个界面美观性比较强的功能时,可能会遇到这种问题:多个控件互斥,类似于QRadiButton控件,但又不是单纯的QRadioButton控件,互斥的可能是一个窗口,也可能是几个按钮,等等多种情况。

这里我只是列举了一个简单的互斥例子,虽然简单,但是包含了各种坑,有需要的掘友们可以小笔记们记一下,尤其是对Qt新手来说,还是很有必要的。

由效果图可以看出创建了3个自定义widget,点击其中一个时,另外两个背景色以及文本颜色变化,处于选中状态。

接下来,针对效果图展示的功能进行逐一讲解,包含了知识点以及踩坑记录。

功能实现

实现自定义互斥widget过程中遇到了如下知识点以及问题,看看有没有你曾经遇到的或者是刚好需要的功能吧!

知识点

1:Widget模拟按钮的四态功能,包括了:常态、按下、聚焦、禁用

2:Widget自定义类的背景色设置以及文本内容风格设置

3:如何让多个widget实现互斥效果

问题

1:自定义Widget背景色设置之后为什么不生效?

针对上述知识点以及问题来讲述这个简单的功能吧!

讲解知识点1

使用Widget模拟按钮的四态功能,需要用到Widget自身的消息:鼠标按下,鼠标进入、鼠标离开。

virtual void mousePressEvent(QMouseEvent *event); //鼠标按下响应消息
virtual void enterEvent(QEvent *e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值