Qt 笔记---透明窗体

公司某产品原本面板的操作系统为安卓,现场运行发现不是很稳定,因此改换成Linux了,于是选择了Qt!

两三年前接触过Qt,学了点皮毛,现在捡起来发现跟从零学起差不多。作为初学者,我打算做一些笔记,把一些经验记录下来,不但可以分享给大家,而且可以随时可以翻出来看!

第一天的笔记是关于透明窗体的设置的。

1. 窗体部件的透明

 setStyleSheet(“QPushButton{background-color: rgba(255,255,255,0)}”); 

 rgba()中的a表示的就是透明度,0表示完全透明,255表示完全不透明。

2. 整个窗口的透明

 setWindowOpacity(qreal level); 

 设置后整个窗体所有部件全部透明,其中level取值为0.0(完全透明)到1.0(完全不透明);

3. 窗体背景透明,窗体内部件不透明

 setWindowFlags(Qt::FramelessWindowHint);
         setAttribute(Qt::WA_TranslucentBackground);

第二句才是设置窗体背景透明,一般在dialog配合第一句使用,为设置无边框的窗口。

4. 使用paintEvent()设置窗体半透明效果

 void SH_camera::paintEvent(QPaintEvent *)
 {
    QPainter painter(this);
    painter.fillRect(rect(),QColor(255,255,255,100));
 }

 PS:paintEvent函数非常占CPU,一般不推荐使用。

你可能感兴趣的:(Qt,开发)