[РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок |
kwisp |
16.1.2009, 16:03
Сообщение
#11
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
извини за то что повторяюсь. считаю, что в данном контексте слово "требующимся" не означает что "по размеру содержимого".
может и ошибаюсь но предположений больше нет. думаю стоит ковырять в сторону рекомендуемых размеров для элементов столбцов и строк. ну конечно есть как всегда вариант через одно место с помощью QFontMetrics узнать размер строки и с помощью него менять ширину, но его я не предлагаю. сейчас накатаю примерчик и посомотрю наглядно. |
|
|
kwisp |
16.1.2009, 17:38
Сообщение
#12
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
сейчас накатаю примерчик и посомотрю наглядно. у меня так получилось если сделать table.resizeColumnsToContents(); до заполнения то косячит если после заполнения то все ок. норма
обрезается
с таблицами не работал раньше. оно то и понятно потому что table.resizeColumnsToContents(); это установка сделать операцию используя имеющиеся данные о размерах строк. а не установка свойства. Сообщение отредактировал kwisp - 16.1.2009, 17:40 |
|
|
Litkevich Yuriy |
16.1.2009, 17:55
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
У меня тоже после заполнения:
если перенести ресайз до установки заголовков, то они тоже плющатся
|
|
|
kwisp |
16.1.2009, 17:59
Сообщение
#14
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
У меня тоже после заполнения: .... если перенести ресайз до установки заголовков, то они тоже плющатся ну а если перенести ресайз поставив его после заполнения таблицы и заполнения заголовков??? собери мои примеры если есть время посмотри. Сообщение отредактировал kwisp - 16.1.2009, 18:06 |
|
|
Litkevich Yuriy |
16.1.2009, 18:08
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kwisp |
16.1.2009, 18:13
Сообщение
#16
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
ну а если перенести ресайз поставив его после заполнения таблицы??? дак так и есть заполняется модель в строке reportmodel->setQuery(qstr, db); а в таблице отображается за счет связи модели с таблицей (т.е. "само")жесть. что могу сказать. время стучать в бубен и бегать вокруг костра. мое предложение - это же слот resizeColumnsToContents(), соедини его с каким нить сигналом. пусть для проверки даже с кликом на кнопке или еще каким чтобы вызвать его гарантированно после того как все в таблице заполнено....извини если несу чушь по кусочку кода сложно понять как что у тебя организовано. |
|
|
SABROG |
16.1.2009, 22:17
Сообщение
#17
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Где-то я такое уже видел. Попробуй такие варианты:
|
|
|
kwisp |
16.1.2009, 23:06
Сообщение
#18
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
Litkevich Yuriy |
17.1.2009, 6:02
Сообщение
#19
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
мое предложение - это же слот resizeColumnsToContents(), соедини его с каким нить сигналом. пусть для проверки даже с кликом на кнопке или еще каким чтобы вызвать его гарантированно после того как все в таблице заполнено да так помогло:получается, что заполнение представления из модели происходит несколько асинхронно. Хотя это для меня небыло очевидно, т.к. когда данные из БД выбирались другой ХП, существенно мение оптимальной, время на выборку занимало несколько мин. При этом всеравно текст в ячейках обрезался. Но тут видимо ключевой момент асинхронное заполнение представления из модели. Представление еще незаполнено, а метод resizeColumnsToContents уже вызван. |
|
|
Litkevich Yuriy |
17.1.2009, 6:58
Сообщение
#20
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
кое чего накопал, чтобы избавится от многоточия, можно сделать так:
view->setTextElideMode(Qt::ElideNone); но resizeColumnsToContents() ведет себя по прежнему. |
|
|
Текстовая версия | Сейчас: 30.11.2024, 10:23 |