我想删除我的QListView的背景,以便下面的背景可以被看到。我该怎么做呢?
我尝试了setAttribute(Qt::WA_NoSystemBackground)和setAttribute(Qt::WA_NoBackground),但这并没有改变任何事情。另外,我不能重写paintEvent(),否则它不会绘制项目。
有什么想法吗?
发布于 2011-08-10 01:14:43
答案取决于您的QListView是否是顶级小部件。QWidget docs on transparency对此进行了详细解释。对于顶级小部件,它可能像下面这样简单:
view->setWindowOpacity(50);对于不是顶级的小工具,您需要将背景设置为具有alpha通道的背景:
QPalette palette = view->palette();
palette.setColor(QPalette::Background, Qt::transparent);
view->setPalette(palette);你也应该能够对样式表做同样的事情:
view->setStyleSheet("background-color: transparent;");您可能需要将autoFillBackground设置为false,以便小部件不会自动填充背景。
https://stackoverflow.com/questions/6999027
复制相似问题