最近剛接觸Qt 對於QML作界面感受已經很輕鬆了,可是想嘗試一下GUI..準備作一個理財的小軟件 ....慢慢記錄個人一點一滴的學習經歷.less
本身封裝界面UI 遇到了好多新手級別的問題=_=!!! 函數
一、界面透明 方法好多設置pattle 等等這裏我就用這一個學習
ydw.setWindowFlags(Qt::FramelessWindowHint); //在設置 Qt::WA_TranslucentBackground 屬性 以前必須去掉窗體的標題欄this
ydw.setAttribute(Qt::WA_TranslucentBackground); //設置窗體透明 前面必須先調用...Qt文檔上說的
二、 設置透明窗體而且貼圖 spa
this->setWindowFlags(Qt::FramelessWindowHint);//設置窗體無邊框
this->setAttribute(Qt::WA_TranslucentBackground);//設置背景透明
QPixmap pic;//支持多種圖片 另外QBitmap是單一顏色圖像能夠本身看效果
pic.load(":/image/qqframe.png");//加載圖像
this->resize(pic.size());//設置窗體和圖片同樣大 弄一張圓角圖片就能實現圓角窗體了
void YdwWindow::paintEvent(QPaintEvent *) //而後在窗體的paintEvent虛函數進行貼圖 利用QPainter OK{
QPainter painter(this);painter.drawPixmap(0, 0, pic);//繪製圖像}
三、圓角實現原理圖片
QBitmap objBitmap(size()); //QPainter用於在位圖上繪畫文檔
QPainter painter(&objBitmap); //填充位圖矩形框(用白色填充)
painter.fillRect(rect(),Qt::white);//白色rgb 255 255 255 用來和圖片異或
painter.setBrush(QColor(86,78,72)); //在位圖上畫圓角矩形(用黑色填充)作爲重疊區
painter.drawRoundedRect(rect(),windowRadius,windowRadius); //繪製圓角
setMask(objBitmap);//使用setmask進行 背景一夥出現圓角