Qt的主窗口背景设置
主界面設置背景一般有設置背景圖片和背景顏色的需求,其實二者之間設置方法類似
目錄
主界面設置背景一般有設置背景圖片和背景顏色的需求,其實二者之間設置方法類似
方法一:最簡單的方式是通過ui界面來設置,例如設置背景圖片
方法二 :通過代碼設置窗口的palette屬性來實現
方法三:通過重寫paintEvent事件,來設置背景圖片和背景顏色
方法四:通過代碼中設置樣式表,其與方法一類似
首先說明一下background-image、border-image、image三種區別
background-image:簡單理解就是將圖片從部件的左上角開始貼圖,部件的大小限制了顯示圖片范圍;好比是我們按照部件的大小來裁剪圖片
border-image:就是將貼圖縮放進到部件里,部件能看到完整圖片,但是此時圖片會被壓縮的變形
iamge:部件會按照圖片的原始大小進行填充
方法一:最簡單的方式是通過ui界面來設置,例如設置背景圖片
在添加資源的下拉框有三種方式:
選擇background-image之后會有個問題,就是窗口上的其它子部件也會貼上圖,如下:
?這種添加方式會讓所有部件都會貼圖,肯定不行;需要把background-image: url(:/image/background.png);放在#MainWindow{}里(MainWindow為主窗口的對象名),意思就是只針對主窗口設置有效,子部件無用;
? ? ? ? ? ? ? ? ? ? ? ?設置前? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?設置后
?背景色設置和背景圖片設置也是一樣的道理,如果不想窗口中的部件顏色和主窗口一樣,也是需要#MainWindow來設置限定范圍
?設置完效果如下:
?
?
方法二 :通過代碼設置窗口的palette屬性來實現
1)背景圖片設置
QPixmap pixmap=QPixmap(":/image/background.png").scaled(this->size()); QPalette palette; //設置主窗口背景圖片 palette.setBrush(QPalette::Window,QBrush(pixmap));2).背景顏色設置
QPalette palette; //設置主窗口背景顏色 palette.setColor(QPalette::Window,QColor(255, 150, 30)); this->setPalette(palette);方法三:通過重寫paintEvent事件,來設置背景圖片和背景顏色
1)設置背景圖片
void MainWindow::paintEvent(QPaintEvent *) {QPainter painter(this);QPixmap pixmap(":/image/background.png");painter.drawPixmap(this->rect(),pixmap);}2)設置背景顏色
void MainWindow::paintEvent(QPaintEvent *) {QPainter painter(this);QColor color(255, 150, 30);painter.setBrush(color);painter.drawRect(this->rect()); }方法四:通過代碼中設置樣式表,其與方法一類似
1)設置主窗口背景圖片
this->setStyleSheet("QMainWindow {background-image:url(:/image/background.png)}");2).設置主窗口背景顏色
this->setStyleSheet("QMainWindow {background-color:rgb(255, 150, 30)}");總結
以上是生活随笔為你收集整理的Qt的主窗口背景设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 提高个税起征点可增加工薪层可支配收入
- 下一篇: UVA