Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QTableView QScrollBar зависание.


Автор: Pro100MoNEy 20.5.2013, 21:42
1) У меня есть модель и QTableView, мне необходимо скрывать строки, я сделал так когда QTableView запрашивает данные модель решает нужно ли отобразить строку если нет то вызывает setRowHidden() в QTableView, кривовато, но другого решения я не нашел, т.к. строк ~2 млн.
Проблема в том что если скрыть большую часть строк, таблица постоянно запрашивает данные(А модель вызывает setRowHidden()), при 5 строках скроллбар остается таким же большим. Ест процессор, и если перемотать скролл в самый низ, GUI зависает если скролить не до конца вниз то все нормально. Проблема в том что скрываются строки по одной что очень долго.
Можно как-то побороть это?
Может унаследоваться от QVerticalHeader и как то добавить сокрытие множества строк(если это возможно то как)?
Можно поменять размер ползунка скролл бара? пробовал setMaximum при прокрутке обновляется до исходного.
2)Есть ли нормальный отладчик в котором будет видно данные в контейнерах? Vector и QString не посмотреть при отладке. (MinGW, windows)

Автор: math64 21.5.2013, 07:09
Скрывать строки следует с помощью QSortFilterProxyModel - можно убрать не нужные, а можно и отсортировать оставшиеся, причём достаточно быстро. 

Автор: borisbn 23.5.2013, 06:17
> Vector и QString не посмотреть при отладке. (MinGW, windows) 
MinGW - это компилятор, windows - ОС. Ни первое ни второе не может даже int просмотреть.
Какой IDE пользуешься? 

Автор: Pro100MoNEy 23.5.2013, 22:38
Qtcreator, отладчик phytongdb вроде.

Автор: borisbn 24.5.2013, 05:41
Creator отлично показывает и vector и QString. Не понимаю, в чём проблема

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)