Я хочу использовать QTableView. Это результат некоторых тестов.
Как видите, в каждой ячейке есть несколько полей перед содержимым «123». Что это за ящики и как их убрать?
Я думаю, что мне нужно изменить некоторые свойства QTableView, но я не нашел свойства, связанного с этими загадочными блоками.
Вот некоторый код, который я использовал:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
//...
TVLDataModel* model = new TVLDataModel();
ui->uxTVLView->setModel(model);
}
TVLDataModel (наследует QAbstractTableModel)
int TVLDataModel::rowCount(const QModelIndex &parent) const
{
return 2;
}
int TVLDataModel::columnCount(const QModelIndex &parent) const
{
return 2;
}
QVariant TVLDataModel::data(const QModelIndex &index, int role) const
{
return 123;
}
Вы должны изменить свой QVariant TVLDataModel::data(const QModelIndex &index, int role) const
функция, чтобы указать роль, которую вы используете. например Qt :: EditRole, Qt :: BackgroundRole и т. д.
например :
QVariant TVLDataModel::data(const QModelIndex &index, int role) const
{
switch(role){
case Qt::EditRole :
case Qt::DisplayRole :
return 123;
default : break;
}
return QVariant();
}
В противном случае вы бы вернули 123 для каждого ItemDataRole.
Эти «странные» ящики являются флажками. Ваша модель показывает, что каждый элемент можно проверить.