• 5339阅读
  • 1回复

怎样改变QT4.1.2中QListWidget的背景 [复制链接]

上一主题 下一主题
离线erisenxu
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-19
我使用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);
[ 此贴被XChinux在2006-05-19 08:08重新编辑 ]
离线erisenxu

只看该作者 1楼 发表于: 2006-05-19
找到答案了,原来将pal.setBrush(m_IconView->backgroundRole(), m_tile);这一行改为pal.setBrush(QPalette::Base, m_tile);就可以了,原来QT中控件的背景使用QPalette的Base来render的,还一直以为是Background呢。
快速回复
限100 字节
 
上一个 下一个