Ⅰ qt程序 QWidget主窗體背景圖片不但沒顯示 變成了全黑色,在stylesheet中添加資源圖片也不顯示為什麼啊
重寫該QWidget的paintEvent方法,在裡面添加如下代碼:
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
QWidget::paintEvent(e);
注意需要包含幾個頭文件。
Ⅱ QT設置widget背景圖片
在Qt中,為widget設置背景圖片可以通過多種方式實現,關鍵在於選擇適合特定場景的方法。首先,確保精確指定控制項,如在樣式表中使用類名#控制項名,避免影響其他內部控制項的背景。錯誤的做法可能導致混亂,而正確示例將只改變指定widget的背景,而不會影響其內部。
一個常見的方法是使用QPalette,創建一個新的調色板,設置背景刷並應用到widget上,但需要注意圖片大小可能會影響顯示效果。另一種方法是利用paintEvent事件,在Widget的整個區域內繪制圖片,這可以實現平鋪,但可能需要創建子類並增加復雜性。
更為便捷的方法是通過樣式表設置(setStyleSheet)。使用border-image屬性可以輕松設置背景圖片,並且樣式表能保持界面和邏輯的分離。然而,如果widget是頂層窗口,可能需要在子窗口中使用樣式表以確保圖片顯示。
還可以通過間接方式,比如在widget上覆蓋一個QLabel,並在事件中調整其大小以匹配窗口。設置QLabel的setScaledContents為true,使得動態背景圖片成為可能。這種方式適用於需要動態背景或顯示動圖的場景。
Ⅲ qt 怎麼添加主窗口背景圖沒有顯示
//1、如果你是用QWidget做的主窗體,請需要重構paintEvent事件,然後添加如下代碼
voidCustomWidget::paintEvent(QPaintEvent*)
{
QStyleOptionopt;
opt.init(this);
QPainterp(this);
style()->drawPrimitive(QStyle::PE_Widget,&opt,&p,this);
}
//2、如果是QMainWindow類的,請檢查下圖片配置路徑或qss語法,
//3、如果沒有使用UI布局,請設置你需要設置qss對象的objectName,否則qss無法定位你的widget