首页| 论坛| 消息

标题:怎样改变QT4.1.2中QListWidget的背景
作者:erisenxu
日期:2006-05-19 00:15
内容:

我使用QPalette来改变QWidget的背景可以成功,但改变QListWidget的背景就失败了,不知什么原因?要怎样才能改变QListWidget的背景呢?
我的代码如下,将QListWidget改为QWidget,是可以生效的:
QListWidget* m_IconView = new QListWidget;
//QPalette pal = m_IconView->palette();
//pal.setBrush(m_IconView->backgroundRole(), QPixmap(":/rc/simlab.png"));
//m_IconView->setAutoFillBackground(true);
//m_IconView->setPalette(pal);
QPixmap m_tile = QPixmap(100, 100);
m_tile.fill(Qt::white);
QPainter pt(&m_tile);
QColor color(255, 0, 0);
pt.fillRect(0, 0, 50, 50, color);
pt.fillRect(50, 50, 50, 50, color);
pt.end();
QPalette pal = m_IconView->palette();
pal.setBrush(m_IconView->backgroundRole(), m_tile);
m_IconView->setAutoFillBackground(true);
m_IconView->setPalette(pal);


#1 [erisenxu 05-19 23:34]
找到答案了,原来将pal.setBrush(m_IconView->backgroundRole(), m_tile);这一行改为pal.setBrush(QPalette::Base, m_tile);就可以了,原来QT中控件的背景使用QPalette的Base来render的,还一直以为是Background呢。

回复 发表
主题 版块