Qt TableView удаляет странные поля

Я хочу использовать QTableView. Это результат некоторых тестов.

TableView с 4 ячейками, каждая ячейка содержит загадочный флажок, похожий на флажок

Как видите, в каждой ячейке есть несколько полей перед содержимым «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;
}

1

Решение

Вы должны изменить свой 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.

3

Другие решения

Эти «странные» ящики являются флажками. Ваша модель показывает, что каждый элемент можно проверить.

0

По вопросам рекламы [email protected]