Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Павел_F. от Января 14, 2010, 09:21



Название: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Павел_F. от Января 14, 2010, 09:21
Заголовк столбца состоит из нескольких слов, например "Заголовок первого столбца".
Отображается как
 _______________________________
|                                                      |
| Заголовок первого столбца     |
|_______________________________|

Есть желание отобразить его в несколько строк типа
 ____________
|                    |
| Заголовок |
| первого     |
| столбца    |
|___________|

Это реально сделать не трогая paintSection у QHeaderView?
Что-то никак не нахожу...

PS: задать его как "Заголовок\n первого\n столбца" не предлагать, к задаче не подходит.


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: break от Января 14, 2010, 13:34
может это подойдет?
http://www.prog.org.ru/topic_9143_0.html

Цитировать
PS: задать его как "Заголовок\n первого\n столбца" не предлагать, к задаче не подходит.
сори за оффтоп - но почему?


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Павел_F. от Января 14, 2010, 14:51
Нет это не то. Мне многоуровневые заголовки-то не нужны, а переносов там тоже нет.
сори за оффтоп - но почему?
Это с вязано с тем, что в программе будет не один язык. А в разных языках строки выглядят по разному и кол-во слов разное. да и переводом занимаются переводчики, а прогу пишут программисты. А рассказывать переводчикам по "\n" и зачем оно нужно не вариант.


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: break от Января 14, 2010, 15:25
Цитировать
А рассказывать переводчикам по "\n" и зачем оно нужно не вариант.
Согласен - или надо написать ф-ю которая будет обрабатывать строки и вставлять /n там где надо по числу чимволов, и через нее пропускать все что вставляется в заголовок. (может макрос)

Или же писать свой HeaderView...


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Barmaglodd от Января 16, 2010, 19:51
Вообще-то QtLinguist умеет перевод каретки без вставки "\n".


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Павел_F. от Января 16, 2010, 20:02
В смысле? Не понял...


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: crossly от Января 16, 2010, 20:14
это к тому что переводчику не нужно объяснять об \n... ему просто надо нажать Enter


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Павел_F. от Января 16, 2010, 23:15
Ну в таком случае ему нужно объяснять где нажать Enter где не нажимать. Тоже не хорошо...


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Barmaglodd от Января 17, 2010, 07:16
А как QHeaderView поймёт автоматически, когда надо переносить слова?
Если наследоваться нельзя, то можно попробовать систему костылей из обработчика изменения размера колонки или строки и зависящего от них headerDataChanged у модели.


Название: Re: Опять про заголовки QTableView, как обстоят дела с переносом слов?
Отправлено: Павел_F. от Января 17, 2010, 08:51
А как QHeaderView поймёт автоматически, когда надо переносить слова?
А ему всегда надо переносить. Просто одна и та же строка может встретится в заголовке таблицы и в лейбле каком-нибудь. В заголовке надо переносить, в лейбле нет. В идеале конечно стоит при переносе учитывать ширину текста а не тупо каждое слово с новой строки...
Если наследоваться нельзя, то можно попробовать систему костылей из обработчика изменения размера колонки или строки и зависящего от них headerDataChanged у модели.
Почему нельзя? Можно. Сколь угодно раз, просто навыков рисования всякими пайнтерами почти нет. Вот и ищу другой путь из костылей.