qt 设置背景图片方法
生活随笔
收集整理的這篇文章主要介紹了
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 设置背景图片方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用php做的网上留言簿代码,php的ph
- 下一篇: 2辊张力辊张力计算公式