Название: Очень медленный QTreeWidgetItem::setSelected Отправлено: LisandreL от Июнь 21, 2011, 18:21 Есть QTreeWidget.
Необходимо выделить одно или несколько поддеревьев, щёлкая по их вершинам. Казалось бы обойди поддеревья и выстави у всех элементов setSelected( true ), но время работы уже на 5000 элементах оказывается совершенно неприличной. Причём если вместо setSelected использовать setChecked или setBackground, то всё работает заметно быстрее. Возможно ли как-то ускорить этот процесс? Как-то выделять много элементов за раз, а не по одному? Дополнительные сведения: 1) Win 7 x86/64, Qt 4.7.3 MinGW 2) перерисовку отключал, отсылку сигналов блокировал 3) выделение - Extended Название: Re: Очень медленный QTreeWidgetItem::setSelected Отправлено: GreatSnake от Июнь 21, 2011, 18:33 Цитировать отсылку сигналов блокировал И для QTreeWidget::selectionModel() тоже?Для такого количества элементов не мешало бы перейти на QTreeView. Название: Re: Очень медленный QTreeWidgetItem::setSelected Отправлено: LisandreL от Июнь 21, 2011, 19:04 Для такого количества элементов не мешало бы перейти на QTreeView. Ну допустим, что я перешёл. Как для QTreeView такой селект быстро сделать?Название: Re: Очень медленный QTreeWidgetItem::setSelected Отправлено: GreatSnake от Июнь 21, 2011, 19:08 Цитировать отсылку сигналов блокировал И для QTreeWidget::selectionModel() тоже?Название: Re: Очень медленный QTreeWidgetItem::setSelected Отправлено: LisandreL от Июнь 21, 2011, 19:32 А чего на это не отвечаешь? Код на работе. Сейчас тестовую програмку набросаю и отвечу.UPD. ui->treeWidget->selectionModel()->blockSignals( true ); не даёт изменений по времени. Название: Re: Очень медленный QTreeWidgetItem::setSelected Отправлено: LisandreL от Июнь 22, 2011, 08:56 Сделал то, что хотел, через QItenSelectionModel. Код сложнее, зато работает значительно шустрее, чем через QTreeWidgetItem::setSelected.
|