我试图在Qt5中更改QAbstractButton(QPushButton或QCheckBox)的背景颜色并且运气不错。Qt5 - 将背景颜色设置为QPushButton和QCheckBox
这无助:
pButton->setAutoFillBackground(true);
QPalette palette = pButton->palette();
palette.setColor(QPalette::Window, QColor(Qt::blue));
pButton->setPalette(palette);
pButton->show();
如果我尝试改变样式表:
pButton->setStyleSheet("background-color: rgb(255,255,0);");
然后Qt的抛出了其手中,并且描绘出afwul前瞻性块状按钮。
有一页标题为“How to change the background color of QWidget”,但它只是谈论这两种方法。
还有一个页面“Qt Style Sheets Examples”,这意味着如果你想改变背景颜色,你必须接管绘制按钮的所有方面,这似乎是矫枉过正。
我需要在Mac,Windows和Ubuntu Linux上运行它,如果我必须手动绘制关于按钮的所有内容(每个平台一次),那真的不是一件快乐的事情。
我错过了一些明显的东西吗?
p.s. “背景颜色”是指按钮周围的区域,而不是按钮正面文字的颜色。
你有没有解决这个问题? – Alchete
我没有......看起来如果你使用默认的小部件,Qt使用QStyle“绘制”它们,这很好,因为那么你的小部件在所有不同的平台上都是原生的,但不是很好,因为定制不再是可能的。你可能能够创建自己的QStyle派生类,并以某种方式搭载QStyle本身,但是我们决定在UI中完全不同的方向,绕过这个限制。 –