Название: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: xintrea от Январь 29, 2009, 23:57 Здравствуйте!
Попробовал на днях использовать виджет QTableWidget, сделал логику, наворотил что надо, сегодня доделал до рабочего состояния... Начал играться, и обнаружил, что всё нормально работает, кроме скроллинга. Какие-то глюки при скроллинге вверх-вниз. Что слайдером, что графическими кнопками, что клавиатурой. В ячейках то появляются, то исчезают строки. Иногда рисуются только верхние или нижние части букв. Если окно свернуть-развернуть, то строки в ячейках все становятся нормально видны. Qt 4.4.1. Есть ли какой-то метод побороть глюк, не меняя версию Qt? Попробовал делать hide()/show() для виджета QTableWidget, не помогает, строки как были криво отрисованы, так и остаются. Что можно еще сделать? Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: Dendy от Январь 30, 2009, 00:33 А с отрисовкой вы сами ничего не делали? Механизм рисования содержисого не переопределяли?
Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: xintrea от Январь 30, 2009, 01:33 А с отрисовкой вы сами ничего не делали? Механизм рисования содержисого не переопределяли? Нет. Заполняю строки, вывожу на экран. Кстати, глюк появляется только если скрыть заголовки столбцов. Если заголовки видны, глюков нет. А у меня каждый сантиметр на счету, содержимое столбцов понятно из контекста, посему заголовки ненужны. findtableview->horizontalHeader()->hide(); В результате получаю то, что имею. Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: Dendy от Январь 30, 2009, 01:51 Поподробнее. Что кроется под словами "вывожу на экран"?
Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: xintrea от Январь 30, 2009, 02:21 Поподробнее. Что кроется под словами "вывожу на экран"? Вначале вызов clear_all() Код: void findtablewidget::clear_all(void) Потом несколько add_row() и все. Код: void findtablewidget::add_row(QString title, QString tags) findtableview - это QTableWidget. Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: Dendy от Январь 30, 2009, 02:54 Скорее всего баг в Qt. Если не последняя версия - обновитесь. Попробуйте снапшот. Если баг останется - проверьте совпадает ли прямоугольник на отрисовку с реальным что видно на экране:
Код
Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: xintrea от Январь 30, 2009, 14:12 Скорее всего баг в Qt. Если не последняя версия - обновитесь. Попробуйте снапшот. Если баг останется - проверьте совпадает ли прямоугольник на отрисовку с реальным что видно на экране Еще не обновился, на текущей версии имею такое (двигаю слайдером) Цитировать Rect to paint: QRect(0,0 812x111) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x111) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,82 812x29) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x111) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x111) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x18) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,0 812x40) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,91 812x20) Visible rect: QRect(0,0 812x111) Rect to paint: QRect(0,102 812x9) Visible rect: QRect(0,0 812x111) Код
Тогда уж так Код
иначе не компилится. Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: xintrea от Январь 30, 2009, 16:13 А вот какой лог если заголовки видны и отрисовка правильная.
Честнагря не понимаю, показывают ли ети числа отсутсвие проблемы в таком режиме? Цитировать Rect to paint: QRect(0,0 812x86) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x86) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,72 812x14) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x14) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,66 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x20) Visible rect: QRect(0,0 812x86) Rect to paint: QRect(0,0 812x86) Visible rect: QRect(0,0 812x86) Название: Re: Глючит скроллинг в QTableWidget. Qt 4.4.1 Отправлено: Dendy от Январь 30, 2009, 16:26 Видно, что события приходят правильно. Значит нужно смотреть кто неправильно их обрабатывает. А делает это QTableWidget или QTableView в своих методах рисования содержимого.
|