[РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок |
Здравствуйте, гость ( Вход | Регистрация )
[РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок |
kwisp |
17.1.2009, 10:35
Сообщение
#21
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
Litkevich Yuriy |
17.1.2009, 11:07
Сообщение
#22
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вот только для конечного пользователя это не вариант. Пока отложил, через некоторое время еще буду думать.
вот в трэкере списочек, но я пока не понял, то что уменя это исправлено или нет. |
|
|
kwisp |
17.1.2009, 11:15
Сообщение
#23
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
засада.
я так понял что у тебя в другом потоке заполняется таблица. Цитата Представление еще незаполнено, а метод resizeColumnsToContents уже вызван. может следить за заполнением и по окончании последнего сигнал на который повесить уже этот resizeColumnsToContents() ??? особой надежды на трекер не оставляй многие задачи там могут висеть очень долго. |
|
|
Litkevich Yuriy |
17.1.2009, 11:20
Сообщение
#24
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я так понял что у тебя в другом потоке заполняется таблица. это все без моего участия, см. сообщение №13 reportmodel->setQuery(qstr, db); устанавливается запрос и далее модель сама его исполняет, получает из БД результат, ну а представление его отображает. Насчет асинхронности это лишь догадка. Но похоже асинхронности всетаки нет, т.к. если запрос тяжелый то GUI виснит.может следить за заполнением и по окончании последнего сигнал на который повесить уже этот resizeColumnsToContents() ??? я не нашел способа узнать когда отображение завершится. Была дикая мысль использовать событие перерисовки. Но это крайность.
|
|
|
kwisp |
17.1.2009, 13:10
Сообщение
#25
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
в какой последовательности заполняется таблица???
если заполнение и отрисовка связаны жестко, то можно использовать void QTableWidget::cellChanged ( int row, int column ) [signal] для последней ячейки это будет один из крайних моментов заполнения а следовательно после него можнол делать resizeColumnsToContents() думаю стоит попробовать. |
|
|
Litkevich Yuriy |
17.1.2009, 13:21
Сообщение
#26
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kwisp |
17.1.2009, 13:23
Сообщение
#27
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
ну ты знаешь какая ячейка заполниться последней??? сигнал void QTableWidget::cellChanged ( int row, int column ) [signal] передает номер строки и столбца в которой меняются значения. если повесить слот resizeColumnsToContents() на сигнал о заполнении этой ячейки??? можно быстренько проверить сработает или нет просто соединив этот сигнал со слотом resizeColumnsToContents() нагрузит конечно процессор но зато узнаем.... Сообщение отредактировал kwisp - 17.1.2009, 13:25 |
|
|
Litkevich Yuriy |
17.1.2009, 13:33
Сообщение
#28
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kwisp |
17.1.2009, 13:40
Сообщение
#29
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
ну ты знаешь какая ячейка заполниться последней??? нет, я незнаю зарание сколько строк вернет БДа кол-во столбцов знаешь? а ячейка вообще какая нибудь может остаться не тронутой, т.е не заполняться??? заполнение даже пустой строкой считается что ячейка заполнена если заполняются все ячейки гарантированно и ты знаешь колличество столбцов то можно вызывать resizeColumnsToContents() только когда редактируются ячейки последнего столбца по сигналу QTableWidget::cellChanged ( int row, int column ) а так больше идей как то не находится.... |
|
|
Litkevich Yuriy |
17.1.2009, 13:50
Сообщение
#30
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 6:24 |