Сообщение Re[6]: QTableWidget - Тормоза при формировании заголовка от 06.12.2017 11:41
Изменено 06.12.2017 12:57 SaZ
Re[6]: QTableWidget - Тормоза при формировании заголовка
Здравствуйте, Demon051, Вы писали:
D>нашлись вот такие "костыли" на эту тему
D>
D>к наполнению заголовка таблицы применяются на ура — летает как ракета
Так себе. Я бы посоветовал в конце этого всего сделать emit _ui.calcDataView->model()->dataChanged( QModelIndex(), QModelIndex() ); чтобы обновить содержимое. А то на некоторых визуальных темах может не обноваться контент.
З.Ы. с blockSignals будьте готовы к случайным падениям, если юзер тыкнет мышкой во вьюху в процессе апдейта. Уменьшить риски, но не убрать их на 100% можно задизэйблив виджет на время обновления. И так же запретить изменение размера окна, на котором лежит вьюха. В общем, мы такие костыли явно запрещали у себя.
D>нашлись вот такие "костыли" на эту тему
D>
D>_ui.calcDataView->model()->blockSignals( true );
D>_ui.calcDataView->blockSignals( true );
D>.......
D>_ui.calcDataView->model()->blockSignals( false );
D>_ui.calcDataView->blockSignals( false );
D>D>к наполнению заголовка таблицы применяются на ура — летает как ракета
Так себе. Я бы посоветовал в конце этого всего сделать emit _ui.calcDataView->model()->dataChanged( QModelIndex(), QModelIndex() ); чтобы обновить содержимое. А то на некоторых визуальных темах может не обноваться контент.
З.Ы. с blockSignals будьте готовы к случайным падениям, если юзер тыкнет мышкой во вьюху в процессе апдейта. Уменьшить риски, но не убрать их на 100% можно задизэйблив виджет на время обновления. И так же запретить изменение размера окна, на котором лежит вьюха. В общем, мы такие костыли явно запрещали у себя.
Re[6]: QTableWidget - Тормоза при формировании заголовка
Здравствуйте, Demon051, Вы писали:
D>нашлись вот такие "костыли" на эту тему
D>
D>к наполнению заголовка таблицы применяются на ура — летает как ракета
Так себе. Я бы посоветовал в конце этого всего сделать emit _ui.calcDataView->model()->dataChanged( QModelIndex(), QModelIndex() ); чтобы обновить содержимое. А то на некоторых визуальных темах может не обноваться контент.
З.Ы. с blockSignals будьте готовы к случайным падениям, если юзер тыкнет мышкой во вьюху в процессе апдейта. Уменьшить риски, но не убрать их на 100% можно задизэйблив виджет на время обновления. И так же запретить изменение размера окна, на котором лежит вьюха. В общем, мы такие костыли явно запрещали у себя.
З.З.Ы. processEvents лучше вообще выкинуть из цикла.
D>нашлись вот такие "костыли" на эту тему
D>
D>_ui.calcDataView->model()->blockSignals( true );
D>_ui.calcDataView->blockSignals( true );
D>.......
D>_ui.calcDataView->model()->blockSignals( false );
D>_ui.calcDataView->blockSignals( false );
D>D>к наполнению заголовка таблицы применяются на ура — летает как ракета
Так себе. Я бы посоветовал в конце этого всего сделать emit _ui.calcDataView->model()->dataChanged( QModelIndex(), QModelIndex() ); чтобы обновить содержимое. А то на некоторых визуальных темах может не обноваться контент.
З.Ы. с blockSignals будьте готовы к случайным падениям, если юзер тыкнет мышкой во вьюху в процессе апдейта. Уменьшить риски, но не убрать их на 100% можно задизэйблив виджет на время обновления. И так же запретить изменение размера окна, на котором лежит вьюха. В общем, мы такие костыли явно запрещали у себя.
З.З.Ы. processEvents лучше вообще выкинуть из цикла.