• 4196阅读
  • 2回复

如果设置QMainWindows的背景图? [复制链接]

上一主题 下一主题
离线isml
 

只看楼主 正序阅读 楼主  发表于: 2010-09-10
— 本帖被 XChinux 执行加亮操作(2010-09-10) —
如题问,并且图片最好能从资源中获取
离线isml

只看该作者 2楼 发表于: 2010-09-10
多谢这位大哥
离线beaujolais
只看该作者 1楼 发表于: 2010-09-10
1.重写paintEvent()事件

在该事件中用画笔QPainter重画整个背景。该方法比较复杂,不建议初学者采用。
例子:
QPixmap background = QPixmap(":/res/background.png");

void XXX::paintEvent( QPaintEvent* pEvent )
{
    QPainter painter(this);
    painter.drawPixmap(0, 0, background);
}

2.使用调色板类QPalette

  //以下代码中pWidget为指向要设置的widget的指针。  
QPalette palette = pWidget->palette();  
palette->setBrush(QPalette::All,QPalette::Window,QBrush(Qt::red));  
pWidget->setPalette(palette);  
pWidget->setAutoBackground(true);  

推荐使用这种方法!  

3.使用样式表。

  pWidget->setStyleSheet("background-color:blue;"); //设置背景颜色  
  pWidget->setStyleSheet("background-image:url(:/folder/show.bmp);");

此方法会将pWidget上的控件背景也改变了。
快速回复
限100 字节
 
上一个 下一个