⑴ qt里如何給button添加背景圖片
1、打開QT CREATOR,來到並來到設計師designer的編輯界面。
⑵ Qt在界面設計時怎麼給窗口添加背景圖片
這是一種方式:
QPixmap pixmap(QString::fromUtf8("./icon/background.png"));//當前文件夾下面的圖片
QPalette palette = this->palette();
palette.setBrush(backgroundRole(), QBrush(pixmap));
setPalette(palette);
還有一種添加資源文件,在資源文件裡面直接添加
⑶ 本人剛學qt,想利用qt的ui界面設計器快速的加入一張圖片,怎麼插入啊!求救,明天要交的。
1、qt設計器插入圖片的話,就利用QSS吧,這個是最快的方法,給你提供一個剛剛給你寫的小程序吧,效果:
其他的設置方法一樣的。
⑷ QT creator 如何給主窗口添加背景圖片,並且上面的控制項能夠覆蓋背景圖片
在makefile的構造函數里這么寫...QPixmap pixmap("E:\making\background\sonico.jpg");這個圖片路徑寫自己的.QPalette palette=this->palette();palette.setBrush(QPalette::Background,QBrush(pixmap));this->setPalette(palette);使用stylesheet的時候要讓其餘的控制項不繼承這個規則.詳細做法請查看 qss 規則.QT creator 如何給主窗口添加背景圖片,並且上面的控制項能夠覆蓋背景圖片?
⑸ 我想實現在Qt上按鈕上添加背景圖片不知怎樣實現,
看了你的問題,再看了後面的回答,我震驚了,這兩者真的有聯系?PushButton有個屬性叫styleSheet,你可以按以下步驟:
1、點開項目中的以 .ui 結尾的界面編輯文件
2、選中要添加背景圖片的按鈕
3、在按鈕的屬性欄裡面找到styleSheet屬性,它右邊有個省略號按鈕,點擊會出現一個編輯樣式表窗口,可以添加資源,添加漸變之類的,添加背景圖片的話就選擇添加資源(首先按下「添加資源」右邊的小三角,彈出三個選項:background-image、border-image、image),從字面意思都可以看出來背景按鈕是第一個選項,點擊background-image,彈出「選擇資源」窗口,你就可以從已經添加到項目中的資源文件中選擇圖片了,添加資源文件的步驟這兒我就不說了,網上有,回答這個問題不是為了得分什麼的,雖然離現在已經過了那麼久,真的是看不下去
⑹ 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
⑺ qt中主窗口背景設置
以前遇到的很多小知識,從今天開始都一點一點記錄下來。。。
窗口背景無非兩種:背景色、背景圖片。Qt中窗口背景如何設置?下面介紹三種方法:
一、QPalette設置背景
二、實現paintEvent,使用QPainter來繪制背景
三、使用QSS來設置背景
關於QSS的使用不想多說,一般我不用QSS設置窗口背景,也不建議使用。(注意:這里是對於窗口而言)。如果是子部件當然可以。因為窗口使用QSS設置背景之後,若子部件不使用同樣的方式來設置,默認則會繼承父窗口的樣式
子部件一般情況下也不需要設置背景圖片,即使需要使用QSS也完全可以滿足。設置較多的是背景色與圖標,QSS中使用background或者background-color的方式可以實現背景色的設置,圖標則可以使用setPixmap或者setIcon來設置!
下面介紹QPalette以及paintEvent
一、QPalette設置背景
構造函數中可以使用如下方式:
(1)設置背景色
QPalette palette(this->palette());
palette.setColor(QPalette::Background, Qt::black);
this->setPalette(palette);
或:
QPalette palette;
palette.setBrush(this->backgroundRole(), Qt::black);
this->setPalette(palette);
這里setColor和setBrush都可以使用!
(2)設置背景圖片
QPixmap pixmap = QPixmap(":/qm/safe").scaled(this->size());
QPalette palette(this->palette());
palette.setBrush(QPalette::Background, QBrush(pixmap));
this->setPalette(palette);
上面方式無論設置背景色還是背景圖片QPalette::Background與this->backgroundRole()是等價的!
二、paintEvent設置背景
(1)設置背景色
void IIIMark::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setBrush(Qt::black);
painter.drawRect(this->rect());
}
(2)設置背景圖片
void IIIMark::paintEvent(QPaintEvent *)
{
QPixmap pixmap = QPixmap(":/qm/safe").scaled(this->size());
QPainter painter(this);
painter.drawPixmap(this->rect(), pixmap);
}
注意:
(1)以上都是用scaled方式對圖片進行了適應窗口大小的設置,因為所給的圖片大小不一定滿足要求,所以採用此方式!當然圖片經過拉伸或者壓縮之後會變形(純色圖片除外),所以對圖片採用此方式時需要注意。
(2)設置背景范圍的時候如果需要充滿整個窗口最好使用this->rect(),因為我看到很多人在使用QRect(0, 0, 400, 400)之類的語句,那麼如果窗口大小改變了呢?此句是不是要跟著變呢?
(3)如果需要背景圖片或者背景色隨可以發生改變時,也就是所謂的換膚功能,則採用paintEvent的方式,在需要改變的時候使用update()來進行更新。
(4)this->setAutoFillBackground(true)又讓我想起了tr(),被很多人濫用。這句話在什麼時候使用呢?不妨採用QPalette設置背景的方式加上與去掉這句話對比一下(在有父窗口的情況下使用)。如果這個QWidget直接show,則有背景色,如果放到一個父窗口中,就沒有效果。添加該句即可!
⑻ 怎樣給QT窗體添加背景,還有按鈕怎麼添加圖片
呵呵,我剛剛做完這個功能,簡單點我使用的是設計師界面類,然後再QMainwindow的屬性中有stylesheet這個屬性,設置添加相應背景圖片(背景圖片在工程文件夾中,並且資源文件中已經添加好了)按鈕也是一樣,不同的是按鈕多了ICO這個熟屬性,你再多添加次資源圖片,然後設置一下合理的大小就OK了。