LINUX.ORG.RU

Заменить выходящий за рамки текст троеточием

 ,


0

1

Собственно нужно в QPushButton заменить выходящий за ее рамки текст троеточием, но при этом текст в поле текст должен остаться без изменений, как это правильно реализовать?
Спасибо!

★★★★★

Ответ на: комментарий от Amp

Какую функцию мне лучше перекрыть для этого трюка?
Нужно, что то связанное с отображением виджета или с изменением размера

deterok ★★★★★
() автор топика
Ответ на: комментарий от Amp

А какая функция отвечает за рисование элемента?
Именно та, которая говорит, что и как нужно нарисовать.

deterok ★★★★★
() автор топика
Ответ на: комментарий от deterok

paintEvent, только вот QPushButton это не QLabel, где отрисовка виджета заключается только в drawText(...).

Вообще такой функционал именно для кнопки идет вразрез со всевозможными HIG-ами и я советовал бы отказаться от подобной затеи.

Amp ★★★
()
Ответ на: комментарий от deterok

Нет там такого элемента внутри. Решением является модификация поля text у QStyleOptionButton и вызова drawControl. Перед этим надо еще выполнить ряд манипуляций - узнать ширину области, которая отведена в кнопке под вывод текста и укоротить сам текст.

Посмотри исходники класса ElidedButton в этом проекте http://opticks.org/downloads//opticks/4.8.0/opticks-pdb-sourcecode-4.8.0-wind...

Amp ★★★
()
Ответ на: комментарий от Amp

Спасибо огромное, буду ковырять.

deterok ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.