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

QWidget 样式不生效问题

1.现象

qss中对QWidget使用样式无效

QWidget#CustomWidget
{border:1px solid red;border-radius: 20px;
}

2.原因

css样式需要通过paintEvent才能正常绘制到控件表面, 而QWidgetpaintEvent函数实现为空(Qt5.7.0源码):
在这里插入图片描述
QWidget仅支持backgroundbackground-clipbackground-clip属性

3.解决方案

方案1:

使用带边框的QFrame类代替QWidgetQFrame继承自 QWidget,且paintEvent函数有默认实现
在这里插入图片描述

方案2:

为自定义QWidget提供一个默认的paintEvent函数,如下:

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

Qt助手中有这样一段描述:
在这里插入图片描述


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

相关文章:

  • C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码
  • MySQL主从:如何处理“Got Fatal Error 1236”或 MY-013114 错误(percona译文)
  • js前序遍历等
  • 【cs.AI】25.1.11 arxiv更新速递
  • pytest+allure 入门
  • 【芯片封测学习专栏 -- D2D 和 C2C 之间的区别】
  • uniApp中小程序中版本更新
  • Excel多级结构转成树结构形式
  • JavaScript 数组操作指南
  • HT366 具有防破音功能的免电感滤波2x20W D类立体声音频功放
  • Jax(Random、Numpy)常用函数
  • 求图的各结点的入度个数
  • unity 调整skinweight (皮肤权重),解决:衣服穿模问题
  • vector(2)
  • 手写Spring第三篇番外,反射的基本使用
  • springboot民宿酒店客房管理系统-计算机毕业设计源码46755
  • Ascend C算子编程和C++基础 Lesson1-1 从人工智能到算子
  • 本地部署私人知识库的大模型!Llama 3 + RAG +大模型开源教程「动手学大模型应用开发」!
  • 实景三维赋能地下管线综合智管应用
  • 蓝牙5.4技术解析:更快、更稳定的无线通信
  • RandLA-Net PB C++
  • 项目经理是怎么慢慢废掉的?这些无意识行为可能会毁了你!
  • JS激活已有标签页(页面存在则激活,关闭则打开)
  • el-tree 修改每个层级的背景色
  • 平板外壳高精度标签粘贴应用
  • Redis SpringBoot项目学习