日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt 设置背景图片方法

發布時間:2024/3/12 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt 设置背景图片方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遇到的問題

widget窗口直接使用 setStyleSheet設置 border-image 顯示不出來,
如果非要使用setStyleSheet 方法,
可以在widget里面再加一層 widget2,然后其他的控件都放在新添加的widget2上面。

然后通過setStyleSheet 的方法,給widget2 設置border-image 。

使用setStyleSheet border-image 顯示不出來的原因是

setStyleSheet

1:setStyleSheet()
有一個很值得注意的地方,
1.該函數只能用于設置有父窗口的子窗口的背景!
如果一個窗口沒有子窗口,則無法使用該函數來設置背景顏色或圖片!!
2:同時:對于一個父窗口而言:如果我們用setStyleShette設置了其樣式,而對于其子窗口:
如果沒有用同樣的函數來設置的話, 則其子窗口的樣式和其父窗口完全一致,亦即:其集成了自己父窗口的樣式!
3:延伸:對頂層窗口(沒有父窗口),其有若干個子窗口,
則當我們用setStyleSheet來設置這個頂層窗口的樣式后,
依據1可知:該父窗口本身沒有任何變化,亦即設置沒有生效;
而其子窗口:只要子窗口本身沒有用setStyleSheet來設置自己的樣式表,
則其就是用的自己父窗口的樣式表!!

方法1(這個方法最好)

void MainWidget::paintEvent(QPaintEvent *e) {QPixmap pixmap = QPixmap(":/image/res/titile.jpg").scaled(this->size());QPainter painter(this);painter.drawPixmap(this->rect(), pixmap);//painter.drawPixmap(0,0,this->width(),this->height(),QPixmap(":/image/res/titile.jpg")); }

方法2:

QPixmap pixmap = QPixmap(":/image/res/titile.jpg").scaled(this->size());QPalette palette(this->palette());palette.setBrush(QPalette::Background, QBrush(pixmap));this->setPalette(palette);

方法3:

this->setStyleSheet("background:red");this->setStyleSheet("border-image:url(:/image/res/titile.jpg)");

setStyleSheet限定窗口

this->setStyleSheet("#MainWidget{border-image:url(:/image/res/titile.jpg)}");

總結

以上是生活随笔為你收集整理的qt 设置背景图片方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。