Qt程式設計 去掉標題欄和設定視窗透明用法

2021-06-17 14:18:05 字數 2015 閱讀 2228

原文:

學習qt程式設計,有時候我們很想做出好看又比較炫的畫面,這時就常用到qt上的一些技巧。

這裡我以乙個小例子來展示qt的這些技巧,此qt程式設計寫的,如圖:(去掉標題欄和設定視窗透明後)

**實現部分:

.h檔案

[cpp]view plain

copy

print?

"font-size:14px;"

>#ifndef mainwindow_h  

#define mainwindow_h

#include 

#include

#include 

#include

namespace

ui   

class

mainwindow : 

public

qmainwindow  

;  #endif // mainwindow_h

mainwindow.cpp

[cpp]view plain

copy

print?

"font-size:14px;"

>#include 

"mainwindow.h"

#include "ui_mainwindow.h"

mainwindow::mainwindow(qwidget *parent) :  

qmainwindow(parent),  

ui(new

ui::mainwindow)  

mainwindow::~mainwindow()    

main.cpp檔案

[cpp]view plain

copy

print?

"font-size:14px;"

#include 

#include "mainwindow.h"

intmain(

intargc, 

char

*argv)    

本例中用到的透明是 : 窗體標題欄不透明,背景透明。

這裡介紹幾種設定透明效果的用法:

1.this->setwindowopacity(0.7);//全體透明(指的是窗體,標題欄以及上面所有的控制項都透明)裡面的引數可以控制透明度。

2.視窗整體透明,但是窗體上的控制項不透明。 通過設定窗體的背景色來實現,將背景色設定為全透:

**如下:

[cpp]view plain

copy

print?

"font-size:14px;"

> pal = palette();  

pal.setcolor(qpalette::background, qcolor(0x00,0xff,0x00,0x00));  

setpalette(pal);

3.窗體標題欄不透明,背景透明。(本例中用到的)

this->setattribute(qt::wa_translucentbackground,

true);

4.視窗整體不透明,區域性透明:在paint事件中使用clear模式繪圖。

[cpp]view plain

copy

print?

"font-size:14px;"

>

void

mainwindow::paintevent( qpaintevent* )   

繪製區域全透明,如果繪製區域有控制項不會影響控制項的透明。

5.這裡說一下本程式中怎樣去掉標題欄

this->setwindowflags(qt::framelesswindowhint);//去掉標題欄

就寫到這裡了,親,有收穫嗎?

QT 去掉標題欄和去掉標題欄後移動視窗

在用qt編寫介面時,去掉標題欄方法比較簡單,就一行 this setwindowflags qt framelesswindowhint 去掉以後又發現乙個問題,就是不能移動視窗了,於是我就重寫了三個滑鼠事件,大致 如下 h檔案的 include protected void mousepresse...

PB去掉視窗標題欄

setwindowpos函式把視窗的顯示層次修改為hwnd topmost,就可使指定視窗永遠不會被其它視窗覆蓋,該函式宣告為 function long setwindowpos long hwnd,long ord,long x,long y,long dx,long dy,long uflag...

Android去掉視窗標題欄 狀態列

android手機的最頂部為狀態列,狀態列下面是標題欄。1 去掉標題欄 a 在 中實現 一定要寫在 setcontentview 前面 requestwindowfeature window.feature no title b 在androidmanifest.xml中實現 註冊activity時...