Это действительно зависит от того, что вы хотите делать с этими кнопками. Но с таким количеством отображаемых элементов создание компонентов может занять несколько секунд, если вы используете настоящую кнопку (например, QPushButton) для каждой ячейки и хотите отображать их все сразу.
a) Чтобы имеют лучшую производительность, можно просто создать подкласс QWidget и переопределить void paintEvent(..)
, чтобы нарисовать все ячейки точно так, как вы хотите, с помощью QPainter и использовать void mousePressEvent(..)
для обнаружения щелчков, а затем самостоятельно выполнить математические вычисления, чтобы сопоставить координаты щелчка в камеру. Помещение этого виджета в QScrollArea позволит прокручивать его, если он слишком велик для отображения.
b) Фреймворк QGraphicsView также хорош для отображения тысяч элементов. Реализация была бы более мощной, чем а), но и немного более сложной. Было бы разумно, если вы планируете развивать это представление в будущем, иметь другие элементы для отображения и т. Д. c.
c) Для решения QTableView вы можете попробовать использовать делегат чтобы иметь немного больше контроля над отображением ячеек.