最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt設(shè)置窗體(QWidget)透明度的方法總結(jié)

 更新時(shí)間:2022年11月17日 10:52:49   作者:音視頻開發(fā)老舅  
在Qt開發(fā)中,有的時(shí)候需要為窗體設(shè)置透明度。這篇文章主要為大家介紹幾個(gè)Qt中窗體設(shè)置透明度的方法,文中的示例代碼講解詳細(xì),需要的可以參考一下

1. 設(shè)置窗體的背景色

在構(gòu)造函數(shù)里添加代碼,需要添加頭文件qpalette或qgui

QPalette pal = palette(); 
pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); 
setPalette(pal);

通過設(shè)置窗體的背景色來實(shí)現(xiàn),將背景色設(shè)置為全透。

效果: 窗口整體透明,但窗口控件不透明,QLabel控件只是字顯示,控件背景色透明; 窗體客戶區(qū)完全透明。

2. 使用函數(shù)

setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);//去掉標(biāo)題欄
setAttribute(Qt::WA_TranslucentBackground, true);//設(shè)置窗口背景透明

同樣在構(gòu)造函數(shù)中,效果和第一種方法相同。

3. 窗口及其上面的控件都半透明

setWindowOpacity(0.7);

這個(gè)函數(shù)可以分10個(gè)等級調(diào)整透明度,配合QSlider控件可以做成控制條 效果:窗口及控件都半透明。

自己注釋:

直接設(shè)置setWindowOpacity函數(shù)應(yīng)該不起作用,需要設(shè)置窗體的屬性:

this->setAttribute(Qt::WA_WState_WindowOpacitySet);

4. 窗口整體不透明,局部透明

在Paint事件中使用Clear模式繪圖。

void TestWindow::paintEvent( QPaintEvent* )
{ 
    QPainter p(this);
    p.setCompositionMode( QPainter::CompositionMode_Clear );
    p.fillRect( 10, 10, 300, 300, Qt::SolidPattern ); 
}

試驗(yàn)效果:繪制區(qū)域全透明。如果繪制區(qū)域有控件不會影響控件。

5. 使用qss樣式表設(shè)置窗體透明

QWidget* widget = new QWidget();
widget->setObjectName("wid");
widget->setStyleSheet("QWidget#wid{background-color: rgba(255,0,0,0.5);}");
widget->show();

rgba(255,255,255,1)中參數(shù)解釋:

  • r【read】 表示:紅色,范圍:0-255,
  • g【green】表示:綠色,范圍:0-255,
  • b【blue】 表示:藍(lán)色,范圍:0-255,
  • a【alpha】表示:透明度,范圍:0-1,0表示全透明, 1表示不透明;

補(bǔ)充: 如果QWidget 的子類窗口采用setStyleSheet 設(shè)置背景色無效,需要加上setAttribute(Qt::WA_StyledBackground);

目的是脫離父窗口的樣式。

6. 設(shè)置窗體顏色漸變

(1)漸變顏色設(shè)置有:qlineargradient(線性漸變顏色設(shè)置),qradialgradient(輻射漸變),qconicalgradient(圓錐形漸變)。

漸變方式解釋
QLinearGradient:顯示從起點(diǎn)到終點(diǎn)的漸變。
QRadialGradient:以圓心為中心顯示漸變
QConicalGradient:圍繞一個(gè)中心點(diǎn)顯示漸變
QGradient::PadSpread :填充區(qū)域內(nèi)最接近的停止顏色。這是默認(rèn)的
QGradient::RepeatSpread :在區(qū)域外繼續(xù)重復(fù)填充
QGradient::ReflectSpread :在區(qū)域外反射填充

(2)漸變過程:x1->x2 從左向右漸變;y1->y2 從上向下漸變。如果只有x相等,則表示垂直線性漸變,如果只有y相等,則表示平行線性漸變,否則就是斜角線性漸變。

(3)左右漸變

QLabel#label{
                background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                stop:0 rgba(255,0,0,1),stop:1 rgba(0,255,0,1));
            }

效果:

(4)上下漸變

QLabel#label{
                background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
                stop:0 rgba(255,0,0,1),stop:1 rgba(0,255,0,1));
            }

效果:

(5)左右上下 漸變

QLabel#label{
                background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,
                stop:0 rgba(255,0,0,1),stop:1 rgba(0,255,0,1));
            }

效果:

(6)x1,x2,y1,y2都是設(shè)置成0或者1,顏色都一樣是紅色

QLabel#label{
                background-color: qlineargradient(x1:1, y1:1, x2:1, y2:1,
                stop:0 rgba(255,0,0,1),stop:1 rgba(0,255,0,1));
            }

效果:

(7)增加多個(gè)漸變點(diǎn)

QLabel#label{
                background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0,
                stop:0 rgba(255,0,0,1),stop:0.5 rgba(0,255,0,1),stop:1 rgba(0,0,255,1));
            }

效果:

(8)輻射漸變

以圓心為中心顯示漸變。(cx, cy)是中點(diǎn),半徑(radius)是以中點(diǎn)為圓心的圓的半徑,(fx, fy)是漸變的起點(diǎn)。

QLabel#label{
        background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,
        stop:0 rgba(105, 105, 0, 255),
        stop:0.19397 rgba(0, 55, 55, 255),
        stop:0.202312 rgba(80, 80, 0, 255),
        stop:0.495514 rgba(0, 105, 105, 255),
        stop:0.504819 rgba(0, 188, 188, 255),
        stop:0.79 rgba(0, 195, 195, 255),
        stop:1 rgba(0, 158, 158, 255));
}

效果:

(9)圓錐形漸變

在(cx, cy)坐標(biāo)上以角度(angle)為中心顯示漸變。

QLabel#label{
            background-color: qconicalgradient(cx:0.5, cy:0.5, angle:0,
            stop:0 rgba(0, 255, 0, 255), stop:0.373979 rgba(0, 255, 0, 255),
            stop:0.373991 rgba(33, 30, 255, 255), stop:0.624018 rgba(33, 30, 255, 255),
            stop:0.624043 rgba(255, 0, 0, 255), stop:1 rgba(255, 0, 0, 255));
            }

效果:

以上就是Qt設(shè)置窗體(QWidget)透明度的方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Qt設(shè)置窗體透明度的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用C++實(shí)現(xiàn)迷宮游戲

    使用C++實(shí)現(xiàn)迷宮游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)迷宮游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系

    MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系

    這篇文章主要介紹了VC++中MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系,需要的朋友可以參考下
    2015-01-01
  • C++實(shí)現(xiàn)LeetCode(48.旋轉(zhuǎn)圖像)

    C++實(shí)現(xiàn)LeetCode(48.旋轉(zhuǎn)圖像)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(48.旋轉(zhuǎn)圖像),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++中const與#define的利弊分析

    C++中const與#define的利弊分析

    C++中不但可以用define定義常量還可以用const定義常量,下面這篇文章主要給大家分析介紹了關(guān)于C++中const與#define的利弊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2018-05-05
  • C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹堆

    C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹堆

    這篇文章主要為大家介紹了C語言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹堆的圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C++函數(shù)返回值為對象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)

    C++函數(shù)返回值為對象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)

    C++函數(shù)返回值為對象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié),需要的朋友,可以參考下
    2013-02-02
  • C++:函數(shù)對象,STL提供的函數(shù)對象,函數(shù)適配器詳解

    C++:函數(shù)對象,STL提供的函數(shù)對象,函數(shù)適配器詳解

    這篇文章主要介紹了C++:函數(shù)對象,STL提供的函數(shù)對象,函數(shù)適配器的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • C++中Boost庫裁剪與其應(yīng)用詳解

    C++中Boost庫裁剪與其應(yīng)用詳解

    大家都知道STL全稱"標(biāo)準(zhǔn)模板庫(Standard Template Library)",其實(shí)它是一套標(biāo)準(zhǔn),可能有不同的實(shí)現(xiàn),它是 C++ 的"標(biāo)準(zhǔn)庫"。Boost 則是一個(gè) C++ 庫,被稱為"C++ 準(zhǔn)標(biāo)準(zhǔn)庫"。那么這篇文章文章我們就來詳細(xì)的介紹C++Boost庫的裁剪與其應(yīng)用,感興趣的朋友可以一起學(xué)習(xí)。
    2016-10-10
  • C++實(shí)現(xiàn)四則運(yùn)算器(無括號)

    C++實(shí)現(xiàn)四則運(yùn)算器(無括號)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)四則運(yùn)算器,無括號的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解C語言結(jié)構(gòu)體中的函數(shù)指針

    詳解C語言結(jié)構(gòu)體中的函數(shù)指針

    這篇文章主要介紹了詳解C語言結(jié)構(gòu)體中的函數(shù)指針,文中對函數(shù)指針的基本概念也有講解,需要的朋友可以參考下
    2016-04-04

最新評論

苗栗市| 丰原市| 浦城县| 龙井市| 白玉县| 江津市| 清原| 辉南县| 南京市| 菏泽市| 金坛市| 濮阳市| 乾安县| 阿拉尔市| 太仓市| 闸北区| 崇文区| 出国| 加查县| 独山县| 水城县| 阿勒泰市| 道真| 涞水县| 柯坪县| 县级市| 彭阳县| 布拖县| 垦利县| 额济纳旗| 丰顺县| 饶河县| 页游| 博爱县| 屏东县| 铜陵市| 隆子县| 斗六市| 崇义县| 普兰县| 乌兰县|