我认为这是因为未指定 min-width 和 min-height。
根据documentation:
如果没有指定这个属性,最小宽度是根据导出的
关于小部件的内容和样式。
一种可能性是在设置样式之前获取按钮的大小,并在应用背景颜色时设置该大小。
即(在本例中,我们有一个 UI 文件,其中包含一个名为 pushButton 的按钮):
QString width ("min-width: " +
QString::number(ui.pushButton->size().width()) +
" px; " +
"max-width: " +
QString::number(ui.pushButton->size().width()) +
" px;");
QString height ("min-height: " +
QString::number(ui.pushButton->size().height()) +
" px; " +
"max-height: " +
QString::number(ui.pushButton->size().height()) +
" px;");
QString style ("#pushButton { " + width + height +
"background-color: black; }");
qApp->setStyleSheet(style);
我设置了最小和最大宽度和高度,因为reference 说
如果您想要一个固定宽度的小部件,请设置最小宽度和
最大宽度为相同的值。
当然,更简单的解决方案是在设置背景颜色后调整按钮的大小。像这样的:
int width = ui.pushButton->size().width();
int height = ui.pushButton->size().height();
QString style ("#pushButton { background-color: black; }");
qApp->setStyleSheet(style);
ui.pushButton->resize(width, height);