【发布时间】:2014-08-15 19:14:41
【问题描述】:
我设置了一个小部件的样式表,然后我在之后添加了一个子小部件。但似乎 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() 中得到虚假数据。是否有解决方法来确保这一点?
【问题讨论】:
-
致电
QWidget::ensurePolished有什么不同吗? -
是的,用它来代替表演作品。谢谢!
标签: c++ qt qtstylesheets