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

会话好友区设计与开发(三)

会话好友区设计与开发(三)

前言

        在上一集,我们完成了两个方法,一个是添加item,一个是清空item。最后我们又用宏开关测试了我们的代码,可以看到我们的代码大致没有任何的毛病。但是我们发现每一个item的头像的背景色貌似不太对劲。那么我们这一集将来解决这一个奇奇怪怪的问题。

分析

那么我们再来看一眼他存在了什么问题,头像的背后一整块的背景色与右边两个组件的背景色不同。我们通过取色器可以发现,头像的背景色是247,247,247。

但是我们在设计整个item的时候,背景颜色是231,231,231。

我们就知道,绝对是左边的问题。

我们知道Qt的内置控件本质上都是画出来的,我们就需要通过更底层的方式进行绘制。

Qt 实现 QSS 的时候,本质上都是通过"画笔"QPainter 这一系列操作,画上去的~~对于 Qt 自带的类,自身已经在 paintEvent 中处理好了相关的逻辑了
对于自己定义的类,就需要手动的来完成上述的"绘制"过程。

Qt 中,如果是给 QWidget 的子类, 通过 QSS 设置背景色则默认情况下是不生效的!

要想生效,需要按照官方文档,写上一段特殊的代码,才能生效!

添加官方代码

void SessionFriendItem::paintEvent(QPaintEvent *event)
{(void) event;QStyleOption opt;opt.initFrom(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

之后再来运行!

可以看到这个问题已经解决了。那么今天就先讲这一点,期待下一集哦!


http://www.mrgr.cn/news/26027.html

相关文章:

  • 每日一练 | IPv4简单流分类
  • 反射这些事
  • Spring Boot框架下校园信息管理平台的构建
  • torch.view torch.expand
  • MacOS wine中文乱码问题
  • 使用规则引擎简化特定场景的开发
  • 如何把提醒事项以倒数日的形式放在桌面上?
  • oracle 如何查询表被锁
  • springboot Web基础开发
  • 代理导致的git错误
  • OpenAI 宣布新AI模型——代号“Strawberry”,逐步解决复杂问题
  • Matlab-Matpower制作IEEE14-电力虚假数据注入攻击FDIA数据集
  • 智能匹配企业名录,让找客户变得简单高效
  • 单考一个OCP认证?还是OCP和OCM认证都要考?
  • 什么是外贸专用路由器?
  • (安装VMtools工具)将一个文件从主系统(windows)传送到VMware虚拟机的Linux系统中
  • 【算法专场】分治(上)
  • 至强Xeon与酷睿Core处理器的详细对比分析
  • 基于MMDetection的OV-Dino实战
  • 多渠道优化您的DTC品牌以提升邮件收入