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.