Russian Qt Forum
Ноябрь 24, 2024, 21:56
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Очень медленный QTreeWidgetItem::setSelected
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Очень медленный QTreeWidgetItem::setSelected (Прочитано 3946 раз)
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Очень медленный QTreeWidgetItem::setSelected
«
:
Июнь 21, 2011, 18:21 »
Есть QTreeWidget.
Необходимо выделить одно или несколько поддеревьев, щёлкая по их вершинам.
Казалось бы обойди поддеревья и выстави у всех элементов setSelected( true ), но время работы уже на 5000 элементах оказывается совершенно неприличной. Причём если вместо setSelected использовать setChecked или setBackground, то всё работает заметно быстрее.
Возможно ли как-то ускорить этот процесс? Как-то выделять много элементов за раз, а не по одному?
Дополнительные сведения:
1) Win 7 x86/64, Qt 4.7.3 MinGW
2) перерисовку отключал, отсылку сигналов блокировал
3) выделение - Extended
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Очень медленный QTreeWidgetItem::setSelected
«
Ответ #1 :
Июнь 21, 2011, 18:33 »
Цитировать
отсылку сигналов блокировал
И для QTreeWidget::selectionModel() тоже?
Для такого количества элементов не мешало бы перейти на QTreeView.
Записан
Qt 5.11/4.8.7 (X11/Win)
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Очень медленный QTreeWidgetItem::setSelected
«
Ответ #2 :
Июнь 21, 2011, 19:04 »
Цитата: GreatSnake от Июнь 21, 2011, 18:33
Для такого количества элементов не мешало бы перейти на QTreeView.
Ну допустим, что я перешёл. Как для QTreeView такой селект быстро сделать?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Очень медленный QTreeWidgetItem::setSelected
«
Ответ #3 :
Июнь 21, 2011, 19:08 »
Цитата: GreatSnake от Июнь 21, 2011, 18:33
Цитировать
отсылку сигналов блокировал
И для QTreeWidget::selectionModel() тоже?
А чего на это не отвечаешь?
Записан
Qt 5.11/4.8.7 (X11/Win)
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Очень медленный QTreeWidgetItem::setSelected
«
Ответ #4 :
Июнь 21, 2011, 19:32 »
Цитата: GreatSnake от Июнь 21, 2011, 19:08
А чего на это не отвечаешь?
Код на работе. Сейчас тестовую програмку набросаю и отвечу.
UPD.
ui->treeWidget->selectionModel()->blockSignals( true ); не даёт изменений по времени.
«
Последнее редактирование: Июнь 21, 2011, 19:47 от LisandreL
»
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: Очень медленный QTreeWidgetItem::setSelected
«
Ответ #5 :
Июнь 22, 2011, 08:56 »
Сделал то, что хотел, через QItenSelectionModel. Код сложнее, зато работает значительно шустрее, чем через QTreeWidgetItem::setSelected.
«
Последнее редактирование: Июнь 22, 2011, 09:16 от LisandreL
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...