Включить QLabel для сжатия, даже если он обрезает текст - PullRequest
8 голосов
/ 17 июля 2011

Как я могу изменить размер QLabel, даже если это означает усечение содержащего его текста?У меня есть QLabel, растягивающий все горизонтальное пространство виджета.Устанавливая его текст, я проверяю, что он правильно обрезан, т.е. получает его FontMetrics и Width и использует metrics.elidedText ().

Но когда пользователь изменяет размер виджета, метка не позволяет ему сжиматься дальшетак как это будет обрезать его текст.

Есть идеи, как это решить?Я думаю, что самым простым решением было бы как-то сказать QLabel всегда сжиматься, а затем перехватывать событие изменения размера и правильно форматировать текст - я просто не знаю, как сделать первую часть (политики разного размера не помогают)

1 Ответ

10 голосов
/ 17 июля 2011

Хотя вы упоминаете, что настройка политик размера не помогла, установка политики горизонтального размера QLabel на QSizePolicy::Ignored должна указывать содержащемуся в ней диспетчеру компоновки игнорировать любые подсказки минимального размера из метки.Альтернативой может быть установка минимального горизонтального размера QLabel равным ненулевому значению, например 1. Если ни один из этих способов не работает, то есть что-то еще мешающее.

...