У меня есть QTableView с пользовательской моделью, и он отлично работает. Однако, когда я запускаю программу, я хочу, чтобы размер строк и столбцов соответствовал размеру, потому что по умолчанию они занимают слишком много места. Я должен отметить, что в моей таблице 65 тысяч строк (всего 3 столбца), и они всегда одинаковы. Следующий код работает нормально, но очень медленно.
memorListView — это QTableView. До этой строки я setModel
в свою пользовательскую модель
memoryListView->resizeRowsToContents();
memoryListView->resizeColumnsToContents();
Как я уже упоминал, это делает именно то, что мне нужно, но для запуска требуется около 8 секунд. Я полагаю, это потому, что все данные должны быть извлечены из модели, когда представление в остальном счастливо лениться запрашивать их.
Я мог бы установить размер строки и столбца вручную, что является моим текущим обходным путем, но это кроссплатформенное приложение, и я не хотел бы беспокоиться о различных виджетах, размерах текста, DPI и т. д., вызывающих проблему. Я мог бы автоматически изменить размер одной строки, а затем установить остальные в соответствии с размером этой строки, что было бы правильно, но кажется очень хакерским.
Я надеюсь, что я просто делаю это наивно, и есть какой-то вариант, который я могу переключить, чтобы сделать это быстрее. Я знаю, что все строки и столбцы будут одного размера; могу ли я как-то сказать ему использовать этот намек?
Заранее спасибо.