Я новичок в этой модели / View Framework Qt. В моем приложении я хочу иметь 1000 х 1000 клеток. Должно быть минимальное требование к памяти & это должно быть быстро. Я не знаю, для чего эта терминология модели. Но у меня есть свой собственный класс, который знает, как обращаться с двойными переменными, хранящимися в таблице. В настоящее время я использую QLineEdit с Validator для создания массива ячеек. Но это было слишком медленно для ячеек> 50 х 50. Поэтому я решил пойти по старому доброму пути в MS Excel.
Итак, какой виджет я должен использовать: QTableWidget
или же QTableView
?
И кто-нибудь может объяснить вкратце, что это за модель / представление? Я не специалист по компьютерным наукам, поэтому мне трудно это понять …
Рекомендация cmannett85 хорошая. Читайте документы около десятка раз.
Затем, если ваши проблемы с производительностью и памятью являются вашей главной задачей, и вы думаете, что можете превзойти реализацию QTableWidget, тогда QTableView интерфейс на вершине QAbstractTableModel или же QStandardItemModel это то, что вы ищете.
Поскольку вы новичок в архитектуре представления моделей Qt, я бы рекомендовал использовать QStandardItemModel, пока не почувствуете, что освоили его. Если ваша производительность по-прежнему недостаточно высока, избегайте большого количества дублирования памяти и ненужных объектов, реализуя собственную модель. Плюс, возьми себя хороший учебник и прочитайте его главу о структуре представления модели около 12 раз. Один только этот раздел был на вес золота, imho.
Вот основы для пользовательского каркаса представления модели Qt:
Если вы чувствуете себя как дешево и смело, проверьте этот отрывок на реализацию вашей собственной модели. Работайте над ним по одной функции за раз и играйте с ней по ходу дела.
Чтобы понять рамки, начните с документация об этом. Это начинается медленно, но становится умеренно обширным и охватывает большинство участвующих классов.
QTableWidget или QTableView?
Прочитав документацию, вы поймете, почему этот вопрос не имеет никакого смысла: QTableWidget
использования QTableView
для отображения данных. QTableWidget
(вместе с QTreeWidget
и т. д.) использует инфраструктуру MVC, но она инкапсулирует все это в удобный пакет, полезный для большинства целей, но если вам нужно сделать что-то другое, вам придется разбить его на его составные части и переопределить нужные биты.