Заполнение родительской таблицы стилей не учитывается до тех пор, пока не будет показан дочерний элемент.C++

Программы на C++. Форум разработчиков
Anonymous
Заполнение родительской таблицы стилей не учитывается до тех пор, пока не будет показан дочерний элемент.

Сообщение Anonymous »

Я устанавливаю таблицу стилей виджета, а затем после этого добавляю дочерний виджет. Но похоже, чтоcontentMargins() не возвращает реальные поля до тех пор, пока не будет показан дочерний виджет.

Пример кода:

Код: Выделить всё

this->setStyleSheet("QLabel {padding: 0px 5px 10px 15px;}");
QLabel *label = new QLabel(this);
qDebug() contentsMargins();
label->show();
qDebug() contentsMargins();
Вот результат:

Код: Выделить всё

QMargins(0, 0, 0, 0)
QMargins(15, 0, 5, 10)
Обратите внимание: если бы я изменил порядок, то есть добавил дочерний виджет перед установкой родительской таблицы стилей, проблема исчезла бы.< /p>

Но по разным причинам я не могу добавить дочерний виджет перед настройкой таблицы стилей, и мне также нужно быть уверенным, что мне не передают ложные данные из содержимоеМаргинс(). Есть ли обходной путь, чтобы гарантировать это?

Подробнее здесь: https://stackoverflow.com/questions/244 ... d-is-shown

Вернуться в «C++»