c++ qt qt4 qtableview

c++ - QTableView tiene casillas de verificación no deseadas en cada celda



qt4 (2)

¿Por casualidad, configura el indicador Qt::ItemIsUserCheckable en flags() ?

Estoy empezando con la programación de Qt, y estoy tratando de hacer un diseño de datos tabular simple usando un control QTableView con una clase de modelo de mi propia creación heredando de QAbstractTableModel . Por alguna razón, mi vista de tabla termina pareciéndose a esto:

texto alternativo http://users.nerdland.net/tyler/files/pics/qtableview_checkboxes.png

¿Qué demonios son esas cosas que parecen casillas de verificación (pero no hacen nada cuando hago clic en ellas) en cada celda, y cómo las hago desaparecer? No he cambiado ninguna de las propiedades de QTableView , excepto el nombre del objeto.

Si es importante, mi código de modelo es muy simple:

MyTableModel::MyTableModel(QObject* parent) : QAbstractTableModel(parent) { } MyTableModel::~MyTableModel() { } int MyTableModel::rowCount(const QModelIndex& parent) const { return 1000; } int MyTableModel::columnCount(const QModelIndex& parent) const { return 5; } QVariant MyTableModel::data(const QModelIndex& index, int role) const { return "Foo"; }

La interfaz de usuario de diálogo está construida en Qt Designer, y dentro de la clase para el diálogo adjunto el modelo a la vista de esta manera:

MyTableModel testModel = new MyTableModel(this); ui.testTable->setModel(testModel);

Aparte de eso, no realizo operaciones en ui.testTable .

Usando Qt 4.6.


Intenta cambiar MyTableModel::data() a lo siguiente:

QVariant MyTableModel::data(const QModelIndex& index, int role) const { if (role == Qt::DisplayRole) return "foo"; else return QVariant(); }

Probablemente Q Qariant devuelto para el rol Qt::CheckStateRole fue entendido por QTableView.