在显示子项之前,不会考虑父样式表填充

时间:2014-06-25 09:32:26

标签: c++ qt qtstylesheets

我设置了一个小部件的样式表,然后在那之后添加一个子小部件 。但似乎在播放子窗口小部件之后,contentsMargins()不返回实际边距。

示例代码:

this->setStyleSheet("QLabel {padding: 0px 5px 10px 15px;}");
QLabel *label = new QLabel(this);
qDebug() << label->contentsMargins();
label->show();
qDebug() << label->contentsMargins();

这是输出:

QMargins(0, 0, 0, 0) 
QMargins(15, 0, 5, 10) 

请注意,如果我要更换订单,即在设置父级样式表之前添加子窗口小部件,问题就会消失。

但由于种种原因,我无法在设置样式表之前添加子窗口小部件,我还需要确保我没有从contentsMargins()中提供错误数据。是否有解决方法来确保?

1 个答案:

答案 0 :(得分:1)

您可以调用QWidget::ensurePolished以确保窗口小部件具有正确的样式。这是QWidget在显示之前内部使用的内容。