首页 > 其他分享 >Qt-QWidget对样式表设置边框无效的解决方法

Qt-QWidget对样式表设置边框无效的解决方法

时间:2023-09-12 10:56:05浏览次数:32  
标签:opt QWidget 样式表 background QFrame Qt

相关资料:

https://www.ngui.cc/el/1647992.html?action=onClick

 

 

 

1、现象
在对QWidget使用样式表时无效

QWidget#MyWgt{border:1px solid gray;
}
2、原因
原因是QWidget只支持background、background-clip和background-origin属性。官方说明

3、解决方法
3.1 使用QFrame代替QWidget,QFrame继承自QWidget,QFrame是基本控件的基类,并且带有框架属性。继承关系如下:
QPushButton,QLabel… -> QFrame -> QWidget
3.2 继承QWidget,添加对paintEvent的实现,如下

void MyWgt::paintEvent(QPaintEvent *)
{QStyleOption opt;opt.initFrom(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式
}

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:opt,QWidget,样式表,background,QFrame,Qt
From: https://www.cnblogs.com/FKdelphi/p/17695588.html

相关文章

  • Qt/C++音视频开发52-采集本地屏幕桌面的终极设计
    一、前言最开始设计的时候,只考虑了一个屏幕的情况,这种当然是最理想的情况,实际上双屏或者多屏的用户也不在少数,比如我这两个屏幕,屏幕1是1080P,屏幕2是2K分辨率,打印两个屏幕的区域是QRect(0,01920x1030),QRect(1920,-2082560x1390),可以看到有个负数值(可以在操作系统中的排列显示......
  • Python - PyQt5环境搭建
    前期准备:PyQt5以及其他组件的下载与安装    在python的图形界面开发过程中,我们需要三个组件,分别是:PyQt5、pyqt5-tools、PyQt5Designer,我们直接在命令行输入下面的代码进行安装即可:pipinstallPyQt5pipinstallpyqt5-toolspipinstallPyQt5Designer环境的设置:......
  • QtreeWidget的部分基本使用
    创建树节点(QTreeWidgetItem)并添加到QTreeWidget中://创建子节点QTreeWidgetItem*child1=newQTreeWidgetItem(root);child1->setText(0,"子节点1");child1->setText(1,"子节点1的列2内容");QTreeWidgetItem*child2=newQTreeWidgetItem(root);child2->......
  • pyqt折线图设置坐标轴刻度
    在PyQt中,可以使用matplotlib库来绘制折线图并设置y轴的最大最小值。importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QVBoxLayout,QWidgetfrommatplotlib.figureimportFigurefrommatplotlib.backends.backend_qt5aggimportFigureCanvasQTAggasFi......
  • QT7331 14bit 2 通道3/2.6/2GS/s ADC + 16bit 2 通道12.6GS/s DAC FMC AD/DA 子卡
    概要QT7331是一款高分辨率、高采样率的ADC+DACFMC子板。它同时支持2路14位3.0/2.6/2.0GS/s的A/D通道输入和2路16位12.6GS/s的D/A通道输出,全功率模拟-3dB输入带宽可达9GHz。QT7331A为3GSPS采样率,QT7331B为2.6GSPS采样率,QT7331C为2GSPS采样率。本板卡支持触发输入或者输出;内参考、......
  • 软件设计开发笔记4:QT操作SQLite数据库
      有时候我们需要在软件中记录一些历史数据以便于对数据的查询。而我们希望软件不能太复杂,体量也不要太大,这个时候就需要如SQLite这样轻量级的数据库。这篇中我们就来讨论如何在使用QT开发应用是操作SQLite数据库。0、概述  SQLite是一款开源、轻量级、跨平台的数据库,无需Se......
  • 【Qt6】列表模型——抽象基类
    列表模型(ItemModel),老周没有翻译为“项目模型”,因为Project和Item都可以翻译为“项目”,容易出现歧义。干脆叫列表模型。这个模型也确实是为数据列表准备的,它以MVC的概念为基础,在原始数据和用户界面视图之间搭建桥梁,使两者可以传递数据(提取、修改)。Qt里面使用列表控制比较......
  • 连接MQTT服务器
    连接MQTT服务器当我们的Esp8266开发板连接到网络后,我们就需要测试验证以下Esp8266连接到MQTT服务器上,让Esp8266作为一个发布者,间隔1s向服务器发送一条信息。1.导入库函数需要连接到MQTT服务器,我们需要使用PubSubClient库函数,因此首先添加到工程中2.编写代码MQTT服务器的话可......
  • 嵌入式 Qt 教程
    常见的嵌入式Linux图形界面有Qt/Embedded、DirectFB、MicroWindows/NanoX、MiniGUI和OpenGUI等,每个GUI都有各自不同特点和应用场合,在应用编程上也各不相同。 本文将介绍嵌入式Qt的基础编程,从环境搭建入手,然后介绍了qmake工具以及QtCreator,紧接着给出Qt常见部件编程和范例,最终......
  • Qt实现QWidgets窗口圆角效果
    对于Qt里其它多数控件,我们可以直接通过设置qssborder-radius:?px;的方式来实现圆角。而我们最常用的窗口QWidget的qss却并不支持这一属性。StackOverFlow上的大佬@hank则给出了一种使用QPainter和遮罩的解决方式:首先#include<QPainterPath>,然后构造你的QWidget。在下文中我......