QtWidget 給Widget加上背景圖實例
QWidget類是所有用戶界面對象的基類。 窗口部件是用戶界面的一個原子:它從窗口系統(tǒng)接收鼠標、鍵盤和其它事件,并且在屏幕上繪制自己的表現(xiàn)。每一個窗口部件都是矩形,并且它們按Z軸順序排列的。一個窗口部件可以被它的父窗口部件或者它前面的窗口部件蓋住一部分。
QDialog是最普通的***窗口。不被嵌入到一個父窗口部件的窗口部件被叫做***窗口部件。通常情況下,***窗口部件是有框架和標題欄的窗口(盡管如果使用了一定的窗口部件標記,創(chuàng)建***窗口部件時也可能沒有這些裝飾。)在Qt中,QMainWindow和和不同的QDialog的子類是最普通的***窗口。
一個沒有父窗口部件的窗口部件一直是***窗口部件。
關(guān)鍵使用widget的palette的brush.
- int main(int argc, char *argv[]) {
- QApplication a(argc, argv);
- QWidget *widget = new QWidget();
- widget->setAutoFillBackground(true); // 這句要加上, 否則可能顯示不出背景圖.
- QPalette palette = widget->palette();
- palette.setBrush(QPalette::Window,
- QBrush(QPixmap("1.png").scaled( // 縮放背景圖.
- widget->size(),
- Qt::IgnoreAspectRatio,
- Qt::SmoothTransformation))); // 使用平滑的縮放方式
- widget->setPalette(palette); // 至此, 已給widget加上了背景圖.
- QHBoxLayout *layout = new QHBoxLayout();
- layout->addWidget(widget);
- QWidget *mw = new QWidget();
- mw->setLayout(layout);
- mw->resize(500, 500);
- //mw->setWindowFlags(Qt::FramelessWindowHint);
- mw->show();
- return a.exec();
- }
小結(jié):QtWidget 給widget加上背景圖實例的內(nèi)容介紹完了,對QWidget類作了簡單的介紹,并以簡單的代碼實現(xiàn)效果圖,希望本文能夠幫你學習QWidget類。