Здравствуйте, гость ( Вход | Регистрация )
igor_bogomolov | Дата 3.12.2010, 8:42 | |
ты там метод layoutRect используешь... что это? Смотри 4 сообщение темы. Это функция которую я писал для выравнивания текста в ячейке. Написана она конечно коряво, но это не главное. Кому надо адаптируетКстати, насчёт изначального вопроса темы. Вот более короткое (и менее полное) решение: http://developer.qt.nokia.com/faq/answer/h...n_my_qtableview Решение идентичное нашему. Да и сложно придумать что то иное. Сам когда то это решение подсмотрел в исходниках QLabel. К стати, в исходники рекомендую по чаще заглядывать, там можно на многие вопросы ответ найти.Не получится, так как в оригинальном методе прорисовки используются некоторые приватные методы. Ну так можно код этих приватных методов позаимствовать.А какой функционал не удалось поддержать? |
||
Obey-Kun | Дата 3.12.2010, 1:15 | |
Да уж, при насследовании, оказывается, не удастся восстановить все фичи QHeaderView. Например, учитывать позицию мыши при отрисовке (в некоторых стилях она учитывается). Не получится, так как в оригинальном методе прорисовки используются некоторые приватные методы. Пока решил повременить с рендеринг rich text у себя в программе. Заодно проголосовал за баг Qt: 2380. Кстати, насчёт изначального вопроса темы. Вот более короткое (и менее полное) решение: http://developer.qt.nokia.com/faq/answer/h...n_my_qtableview |
||
Obey-Kun | Дата 3.12.2010, 0:31 | |
спасибо! правда, решение с фильтром не прокатило, ибо используются защищённые методы, пришлось унаследовать. ты там метод layoutRect используешь... что это? компилятор ругается на его отсутствие, в документации не нашёл... |
||
igor_bogomolov | Дата 3.12.2010, 0:10 | |
фильтр нужно устанавливать для viewport заголовка
|
||
Obey-Kun | Дата 2.12.2010, 23:35 | |
Что я делаю не так? В конструкторе делаю
И делаю метод
И ничего. Ничего в консоль не выводится. Хедер рисуется как ни в чём не бывало. p.s.: блин, наверное надо было новую тему создать, но уже поздно, это сообщение я не могу удалить. |
||
Obey-Kun | Дата 2.12.2010, 23:00 | |
Спасибо! Только сделаю это с помощью eventFilter, дабы лишний раз не наследовать. Кстати, с твоим подходом было бы логичнее использовать QHeaderView::paintSection. |
||
igor_bogomolov | Дата 1.12.2010, 10:34 | |
А аналогично QHeaderView модешь переделать? Если упрощенно, то так.Раскрывающийся текст
Если нужен больший функционал от заголовков, смотри в исходники QHeaderView |
||
Obey-Kun | Дата 1.12.2010, 6:49 | |
jim1406, с тебя пиво Шучу. Интересную ты задачку задал, если честно не сразу справился. Но было очень интерестно повозиться, т.ч. спасибо. В архиве готовый делегат, с тестовым примером. Обрати внимание на параметр Qt::Alignment align, который передается в конструкторе, он позволяет ориентировать текст в ячейке. Раскрывающийся текст
Красавчик. А аналогично QHeaderView модешь переделать? Только там оно уже не делегаты использует, а само рисует. |
||
dezconnect | Дата 24.10.2010, 14:30 | |
макрос Q_D этот макрос всего лишь объявляет личные (внутренние) данные. Т.е. запись:
означает: следовательно смотри соответствующий метод этого внутреннего класса (обычно этот класс описан раньше основного)ммм, вообще в QTextDocument есть такая фича как setTextWidth() =) помогло =) продолжаю копания в сторону sizeHint() ... если в paint() передается painter и ессесно по нему можно узнать ширину TableView через painter->window.width(), то в sizeHint такого счастья не наблюдаю ... Может кто сталкивался... и что ловить если у меня моделью является QSqlQueryModel и для первых 256 записей, sizeHint отрабатывает корректно, после "дозагрузки" данных, они все ломятся высотой в 22 пиксела =( это куда копять опять же... Трабла с дозагрузкой данных в TableView из модели актуален по прежнему |
||
dezconnect | Дата 20.5.2010, 10:44 | |
макрос Q_D этот макрос всего лишь объявляет личные (внутренние) данные. Т.е. запись:
означает: следовательно смотри соответствующий метод этого внутреннего класса (обычно этот класс описан раньше основного)ммм, вообще в QTextDocument есть такая фича как setTextWidth() =) помогло =) продолжаю копания в сторону sizeHint() ... если в paint() передается painter и ессесно по нему можно узнать ширину TableView через painter->window.width(), то в sizeHint такого счастья не наблюдаю ... Может кто сталкивался... и что ловить если у меня моделью является QSqlQueryModel и для первых 256 записей, sizeHint отрабатывает корректно, после "дозагрузки" данных, они все ломятся высотой в 22 пиксела =( это куда копять опять же... |
||
Просмотр темы полностью (откроется в новом окне) | ||
Текстовая версия | Сейчас: 25.4.2024, 15:02 |