qt 设置QPushButton 颜色 半透明

news/2024/7/7 1:11:05 标签: qpushbutton, 颜色, 半透

参考:https://blog.csdn.net/qiushangren/article/details/82427852
qt在有些情况下是需要特殊设置来达到半透效果的,比如在显示视频的ui上或者3D引擎的ui上,我的初步猜测是,这些方式是直接修改显卡中的纹理(texture),而这个纹理qt是没有办法获取到的,而qt处理半透是在cpu中处理的,遇到这些情况的时候可以绕过去让ui半透,请参考下面:(原因有待更新)
https://blog.csdn.net/qiushangren/article/details/82428137
https://blog.csdn.net/qiushangren/article/details/80832064

1、通过stylesheet来设置,可以在uibuilder中进行写入:

上面设置背景颜色为(0,255,0,100)。设置文字颜色为(255,0,0,250),两者都是半透
最主要的设置border为none或者其他值,否则会覆盖掉背景颜色,导致背景颜色看不出效果。这个也可以通过代码的setstylesheet来设置。需要改成这样“QPushButton { color: rgba(255, 0,0, 250);background-color: rgba(0,255,0,100);border:none; }”。“QPushButton { color: rgba(255, 0,0, 250);background-color: rgba(0,255,0,100);border:3px solid black;}”


2、通过palette设置:

m_button->setFlat(true);
m_button->setAutoFillBackground(true);

QPalette palette = m_button->palette();
palette.setColor(QPalette::Button,QColor(255,0,0,100));
m_button->setPalette(palette);

3、 通过重载paintevent() 函数来进行操作,qt组件中的所有绘制操作都是在paintevent中进行的。完全可以自定义paintevent。


http://www.niftyadmin.cn/n/1150101.html

相关文章

反向代理解决80端口数量问题

标题索引问题原因解决思路参数分析企业案例问题原因现如今公网IP地址80端口管理较为严格,工信部防止搭建违规违法网站,企业在使用80端口时需向运营商网站备案管理处申请备案,备案流程通过运营商才能放行80端口,在备案时需提供资料…

unigine 在 qt项目中在unigine画面上 添加 qt的ui

1、新的组件需要在setCenterWidget函数之后添加 2、设置组件的父窗体为centerwidget或者mainwindow 3、在2.7.3.1中默认的情况下,当qt 组件创建时传入的是centerwidget,如果想让鼠标显示在qt的ui上,需要加入如下参数,如果想完全按…

jetty异常

异常一: java.net.BindException: Address already in use: bind jvm 1 | 2017-10-18 15:08:10,7920800 WARN [jetty-main-1] org.eclipse.jetty. util.component.AbstractLifeCycle - FAILED InstrumentedSelectChannelConnector0.0 .0.0:8081: java.net.BindExcep…

ffmpeg d3d11va 加速 访问帧 出现帧混乱 flush

使用ffmpeg d3d11va的时候出现帧的时序上混乱。 通过ffmpeg 源码可知,ffmpeg 用d3d11va 时 出来的frame 中的data[0]存放的是decode texture数组(默认大小为20),data[1] 存放下标(可以发现,貌似下标总是一个…

Gabriel 图 (gabriel gragh)

(欢迎录载到百科中) 参考https://www.jianshu.com/p/7f27273d5f23?fromtimeline 按Grabriel三角划分法 划分 出来的结果叫Grabriel 图。 Grabriel 划分 是 Delaunany 三角剖分的一种 定义:GG(grabriel gragh 缩写) 存在点集E ,u、v、w 属于…

纳斯达克CEO:我们与ICO保持距离

纳斯达克CEO Adena Friedman 近日在Georgetown University大会上表示,纳斯达克正与ICO保持距离。在演讲中,她批评了ICO发行方缺乏足够的投资者保护和披露标准。 ICO是一种区块链创业公司行之有效的融资方式。但是,在投资者的非理性投资、监管…

点到线段的距离 distancePtSeg2d distancePtSeg

线段是有范围的,考虑下面三种情况 //3d static float distancePtSeg(const float* pt, const float* p, const float* q) {float pqx q[0] - p[0];float pqy q[1] - p[1];float pqz q[2] - p[2];float dx pt[0] - p[0];float dy pt[1] - p[1];float dz pt[2] …

WinForm部署问题

WinForm部署问题 1、解决:This implementation is not part of the Windows Platform 问题? 一:单击 开始 ,单击 运行 ,键入 gpedit.msc ,然后单击 确定 。    二:依次展开 计算机配置 &…