Динамический список виджетов с QPushButton, QComboBox QCheckbox - PullRequest
2 голосов
/ 15 июля 2011

Я хотел бы создать список, каждая строка в этом списке содержит:

LineNo | Edit Model  | Model Select | Log enabl | freq      | selection |
1      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
2      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
3      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |
|             |            |              |          |           |      |
n      | QPushButton | QComboBox    | QCheckBox | QLineEdit | QLineEdit |

Этот список является динамическим, у меня есть в общей сложности 36 моделей, но только выбор из них должен быть представлен в зависимости от сделанного выбора. Пользователь сможет сожалеть о любых предыдущих выборах и перерисовывать этот список.

Я смотрю на QListView, QTableWidget, Delegates, но я не могу найти какие-либо примеры или примеры того, как внедрить QPushButton в QListView или QTableWidget. Глядя на документацию QItemDeligate QPushButton не входят в число принятых типов.

1 Ответ

5 голосов
/ 15 июля 2011

Я полагаю, что вы ищете одну из следующих функций (в зависимости от того, какой класс представления вы используете):

QTableWidget::setCellWidget( int, row, int column, QWidget *widget );
QTreeWidget::setItemWidget( QTreeWidgetItem *item, int column, QWidget *widget );
QListWidget::setItemWidget( QListWidgetItem *item, QWidget *widget );

Это позволит вам отобразить произвольный виджет в нужном месте,не требуется никаких действий с делегатами.

Обратите внимание, что эти функции доступны только в версиях этих представлений "Виджет" (например, QTreeWidget в отличие от QTreeView).Однако в QAbstractItemView есть функция setIndexWidget (), которую также можно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...