Qt中设置窗口背景透明

我用Qt5, 新建工程自动生成的dialog窗口。

在dialog.cpp中加了 setWindowFlags(Qt::FramelessWindowHint);
再在ui界面中设置qss,加入带透明部分的背景图片,就是用的background-image
这样的话背景透明部分就是白的。
如果加上background-color:transparent; 背景透明部分就是黑的了

然后我上网查了一下加了两句
setWindowOpacity(1);
setAttribute(Qt::WA_TranslucentBackground);
这样的话就背景就完全透明,什么图片都没有了。

我又查了很多其他方法试了都有问题。这个问题纠结两天了。该怎么办。


这个最后用了点技巧。就是弄一个大标签作为背景,拉到整个窗口大小。然后设置这个标签的图片就行了。

1个回答

setWindowFlags(Qt::FramelessWindowHint);
setWindowOpacity(0.8);
QPixmap pixmap = QPixmap(":/5.jpg").scaled(this->size());
QPalette palette(this->palette());
palette.setBrush(QPalette::Background, QBrush(pixmap));
this->setPalette(palette);

试试这个,看看是不是你要的效果。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt如何设置界面透明
1、设置窗口整体透明,但是窗体上的控件不透明。 可以通过设置窗体的背景来设置。QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);2、设置子控件透明: 可以在Qt Designer中,直接右键改变样式表,来设置其背景色:ba
QT 窗体透明
【引用】Qt中设置窗口的透明   Qt |字号 订阅 本文引用自/yl守望/love《Qt中设置窗口的透明》一、将Qt窗口嵌入到桌面中。 声明一个最简单的类: class Dialog : public QDialog {  Q_OBJECT public:  Dialog(QWidget *parent = 0);  ~Dialog(
Qt 5.x设置透明背景
不知道是bug还是新的规则,Qt 5.x里设置透明背景的规则如下:     top-level窗体: this->setAttribute( Qt::WA_TranslucentBackground,true ); this->setWindowFlags( Qt::FramelessWindowHint ); top-level窗体的中央(centralWid
QT QWidget设置窗体透明度方法汇总
1、设置窗体的背景色  在构造函数里添加代码,需要添加头文件qpalette或qgui  QPalette pal = palette();  pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));  setPalette(pal);  通过设置窗体的背景色来实现,将背景色设置为全透。  效果:  窗口整体透明
Qt中设置QML窗体无边框和背景透明
主要代码在(main()函数中)如下: //设置窗体无边框 view.setWindowFlags(Qt::FramelessWindowHint); //设置整个窗体背景为透明 view.setAttribute(Qt::WA_TranslucentBackground); view.setStyleSheet("background
Qt 中设置窗体透明度的几种方法
1、设置窗体的背景色 在构造函数里添加代码,需要添加头文件qpalette或qgui  QPalette pal = palette();  pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));  setPalette(pal); 通过设置窗体的背景色来实现,将背景色设置为全透。 效果: 窗口整体透明,但窗口
用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)
用Qt可以做出很炫的界面,更多的功能还有待学习^_^! 1、构造函数中需要做的设置: [cpp] view plaincopyprint? this->setWindowOpacity(1);//设置窗体不透明   this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSyste
qgraphicsView设置背景透明,控件不透明
mView.setAttribute(Qt::WA_TranslucentBackground,true); QPalette myPalette; QColor myColor(100,100,100); myColor.setAlphaF(0.2); myPalette.setBrush(mView.backgroundRole(),myColor); mView.setPale
CentOS下Qt窗口透明效果失效,成黑色背景的问题
一、问题        简介 二、运行图 (1)如下图1所示。 三、详解 1、开始 (1)开始
QT tabWidget 设置背景透明
QT tabWidget 设置背景透明   tabWidget->setStyleSheet("QTabWidget:pane {border-top:0px solid #e8f3f9;background:  transparent; }");   这样保证背景透明而上面的控件正常显示
QtWebkit实现视频透明区域
今天,想在页面上开一个区域来播放视频, 因为当前的图形层叠在视频上上面, 想要让视频露出来,就不能有任何的图形东东挡在上面。   首先,我在页面上设计了一块div区域来显示视频,这块区域被设置成全透明: 注意最后一个opacity, 设置为0的话, 就表示该div区域就是全透明了,webkit支持这一个属性。   加载该页面, 发现这个区域的确是透出来了
利用QML实现透明窗口[qt5]
main.cpp mainwindow.
QT窗口控件透明效果的实现
一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette(); bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255)); //bgpal.setColor (QPalette::Background, Qt::tra
Windows编程里,怎样设置窗口背景透明
【模拟时钟】http://blog.csdn.net/u013517637/article/details/23883589 #include #include #define ID_TIMER 1 #define TWOPI (2 * 3.14159) LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;//首
使QScrollArea的背景透明,并且不影响子控件
http://www.cnblogs.com/falqs/p/3805003.html 使QScrollArea的背景透明,乍看很easy,其实却是一个目前百度上百不出来的问题; 最容易想到的,用qss: scrollArea->setStyleSheet("background-color:transparent;"); 但是这样会使scrollArea所包含的所有子控件的背
设置QListWidget背景色为透明
只要一条指令就可以实现:   ui->listWidget->setStyleSheet("background-color:transparent");  其中background-color设置参考CSS背景设置如下: 以下摘自:http://www.cnblogs.com/sunyunh/archive/2012/08/26/2657050.html CSS
Qt中给透明对话框添加border-image样式
QDialog是可设置border-image样式的,但假如对话框设置了Qt::WA_TranslucentBackground属性,再show出来则发现,背景空空如也,完全被穿透,只有子控件悬在上面。这是因为,开启Qt::WA_TranslucentBackground属性还会导致Qt::WA_NoSystemBackground的打开,而它被打开后,绘制事件则不再绘制border-image中
Qt设置窗口背景透明
QPalette pal = palette();     pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));     setPalette(pal); Qt::WA_TranslucentBackground
OpenGL窗体背景透明
一般使用OpenGL在窗体绘制图形时,绘图背景很难透明,在Google找了一段代码,实现在透明窗体上绘制图形,具有镂空的效果,像桌面精灵一样。 分享代码: 001 #define _WIN32_WINNT 0x0500 002   003 #include
自学QT之让label透明和隐藏标题栏
QLabel *label = new QLabel; label->setAttribute(Qt::WA_TranslucentBackground); label->setStyleSheet("background:transparent"); 两个都可以
QDialog 的一些接口,如透明化
1. QDialog::setWindowOpacity(int);  对话框透明化,其中int 为透明系数
关于Qt5 使用QQuickWidget加载QML背景设置透明的问题!
Qt5更改了qml文件加载类之后,如果想使用qml直接嵌入QWidget中,就可以使用QQuickWidget进行加载,使用比较方便。 但使用QQuickWidget加载碰到了一个问题,即有时使用qml想设置背景透明,但如果像一般的widget一样设置样式透明,整个窗口就会全黑或者全白。 查找文档之后,发现了QQuickWidget中有一个setClearColor(QColor&)函数,文档
代码实现QPushButton背景透明、文字不透明
m_pBtn->setFlat( true ); m_pBtn->setStyleSheet( "QPushButton{background: transparent;}" );
Qt之设置QWidget背景色
简述QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色。Qt中窗口背景的设置,下面介绍三种方法。 使用QPalette 使用Style Sheet 绘图事件 一般我不用QSS设置窗口背景,也不建议使用。(这里是对于窗口而,如果是子部件当然可以)。因为窗口使用QSS设置背景之后,若子部件不使用同样的方式来设置,默认则会继承父窗口的样式。使用QPalette使用
第一篇:Qt把窗口嵌入父窗口变成透明,及添加qss样式表文件后子窗口变成透明的问题
这是发布的第一篇文章,也是自己在开发过程中遇到的一些实际问题,经过操作验证,方法可行。(请多多指教!)
win32 透明窗口无边框模版
直接copy就可以用,主要用于造轮子, HINSTANCE hInst; RECT g_re; ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int x,int y,int w,int h,int show); LRESULT CAL...
QT透明显示文字
实现效果:
Qt5.8 鼠标穿透(让鼠标点击png透明处没有反应)
m_btn_ManageUser = new QPushButton(this); m_btn_ManageUser->setGeometry(0, 0, 229, 138); m_btn_ManageUser->setStyleSheet("QPushButton{background: transparent;border-image: url(\"F:/移入效果4.png\");}"
Qt利用QPainter绘制心形以及Qt设置透明窗体的四种方法
在枯燥的编程生活中,有时候也需要自娱自乐,今天就利用Qt的QPainter绘制一颗桃心,虽然不怎么漂亮,但还是挺开心的! 下面是绘制心形的具体实现,一起来看看吧! #ifndef _FLOWER_H_ #define _FLOWER_H_ #include #include class CFlower : public QMainWindow { Q_OBJECT publi
QT 设置QTableWidget背景为透明
m_innerwidget->setStyleSheet("background-color:rgba(0,0,0,0)");
如何使QTextEdit背景透明
      前边的文章http://blog.csdn.net/NRC_DouNingBo/archive/2010/04/28/5540427.aspx介绍了如何给QTextEdit加背景图片,但是由于图片也会跟着翻屏,所以用了一种折中的办法就是:将QTextEdit设置为透明,而后在其后边的窗口的该位置处刷上图片即可。  那这里就说一下如何让QTextEdit控件背景变为透明。    
QtUI设计:设置控件透明
QT设置按钮控件透明:         代码: //设置按钮 背景 前景 this->ui->ShowCvRGB->setStyleSheet(QString("color:rgba(255,255,255,255);background-color:rgba(100,100,100,100)")); // 第一个 为前景色;第二个 为北京色; 透明度 为a
QLabel透明
<br />label的透明方法:<br />1.<br />setAttribute(Qt::WA_TranslucentBackground, false);<br /> <br />2.<br />QPalette pa;<br />pa.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));<br />label->setPalette (pa);<br /> 
Qt中设置按钮透明的方法
在Qt中让按钮实现透明的效果,查了好多资料,关于这个其实不是很多,总结下来可以用下面两种方法实现: 第一种方法:使用setFlat函数实现按钮透明的效果。 QPushButton *mode =new QPushButton(this); mode->setText("mode"); mode->move(200,100); mode->setFlat(true);//就是
Qt中设置窗体背景图片后竟变黑
我们知道,qt中默认的窗体背景背景色是白色的,于是,为了美观或者说体验更好的视觉效果,我们可以更还其背景色,qt中也提供了一系列的函数来让我们对其进行设置,具体设置方法可以参见博客:http://blog.sina.com.cn/s/blog_a6fb6cc90101f9ec.html#cmt_2376162 但是,在我自己动手设置的过程中发现,我设置后窗体背景色竟是黑色的,不是我所要加载的图片,
Qt 透明窗体实现
一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式,经测试,该方法不会影响到其他控件,推荐使用 QPalette bgpal = palette(); bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255)); //bgpal.setColor (QPalette::Background, Qt::transparent); bgpal.setColor (QPalette::Foreground, QCol
QML父窗口半透明情况下子窗口不透明
QML的父元素opacity值会被继承,而color不会。故可以在父窗口使用8位color代码,前两位是alphar透明值。 Rectangle{ id:waitingRec z:100 visible:false anchors.fill: parent color:"#50000000" Com
Qt修改图片的背景色及设置背景色为透明的方法
先上干货。Qt下修改图片背景色的方法:方法一:QPixmap CKnitWidget::ChangeImageColor(QPixmap sourcePixmap, QColor origColor, QColor destColor) { QImage image = sourcePixmap.toImage(); for(int w = 0;w &amp;lt; image.width...
QGraphicsView透明方法
<br />setStyleSheet("background: transparent");
Qt处理图片背景为透明色
Qt界面开发程序中,需要将背景为白色的图片改为透明色。 这里,贴出处理代码,仅供参考学习: void ConvertImageToTransparent(QPixmap qPixmap) { QImage image = qPixmap.toImage(); image = image.convertToFormat(QImage::Format_ARGB32); un
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池