最新国产好看的视频,伊人天堂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);

通過(guò)設(shè)置窗體的背景色來(lái)實(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è)等級(jí)調(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ū)域有控件不會(huì)影響控件。

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è)置背景色無(wú)效,需要加上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)漸變過(guò)程: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è)置窗體透明度的資料請(qǐng)關(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)圖像),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++中const與#define的利弊分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

临沭县| 北碚区| 正蓝旗| 涟源市| 芮城县| 文水县| 资阳市| 南召县| 新河县| 宝山区| 呼伦贝尔市| 巴中市| 东平县| 宜黄县| 瓮安县| 弥勒县| 巨鹿县| 克东县| 祥云县| 重庆市| 沙洋县| 吉木萨尔县| 临沭县| 武汉市| 巴塘县| 平南县| 三门县| 兴业县| 沙洋县| 康定县| 新化县| 尤溪县| 长治县| 湄潭县| 原平市| 五指山市| 琼结县| 临泉县| 甘南县| 贺州市| 遵化市|