Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: BuRn от Январь 18, 2012, 19:33



Название: текст в QGraphicsScene
Отправлено: BuRn от Январь 18, 2012, 19:33
Как - то не понятно как ужимать текст до определенного размера ? есть просто иконки, и различные слова, слова разной длинной , хотелось бы как -то аккуратно под иконкой выводить, но получается так что если надпись длинная то это ппц. Про перенос слова знаю, вариант не подходит, хотелось бы именно ужимать , или мб вы что предложите ?


Название: Re: текст в QGraphicsScene
Отправлено: Bepec от Январь 18, 2012, 20:02
Насколько я помню такую проблему, решилась мониторингом ресайза, и одновременным изменением размера шрифта.

К сожалению не помню, но там есть функция, возвращающая размер символа шрифта в пикселях. А далее простейший расчёт...


Название: Re: текст в QGraphicsScene
Отправлено: iroln от Январь 18, 2012, 20:25
Что значит ужимать? Например, для одной иконки у вас подпись из 10 букв, а для другой из 20, если их "ужать" до одинакового размера (впихнуть в определённый прямоугольник), то размер шрифта разный получится же - это вообще полный отстой. Могу предложить вариант с обрезанием текста, например: "Этот текст...", а при наведении курсора показывать полный текст в всплывающей подсказке. Вообще хочу заметить, что QGraphicsTextItem довольно кривой элемент (как пример, там нет выравнивания текста по вертикали AlignVer, а в SimpleText вообще ничего нет, очень неудобно позиционировать, например центр текста в центре родительского элемента и т.д.) и чаще бывает проще написать свой текстовый элемент на базе QGraphicsItem, который можно будет показывать как захочется.


Название: Re: текст в QGraphicsScene
Отправлено: BuRn от Январь 18, 2012, 20:40
Что значит ужимать? Например, для одной иконки у вас подпись из 10 букв, а для другой из 20, если их "ужать" до одинакового размера (впихнуть в определённый прямоугольник), то размер шрифта разный получится же - это вообще полный отстой. Могу предложить вариант с обрезанием текста, например: "Этот текст...", а при наведении курсора показывать полный текст в всплывающей подсказке. Вообще хочу заметить, что QGraphicsTextItem довольно кривой элемент (как пример, там нет выравнивания текста по вертикали AlignVer, а в SimpleText вообще ничего нет, очень неудобно позиционировать, например центр текста в центре родительского элемента и т.д.) и чаще бывает проще написать свой текстовый элемент на базе QGraphicsItem, который можно будет показывать как захочется.

не подумал на счет ужимать. да не вариант... что - то тогда даже не знаю что делать в таком случае