Qt TableView去除奇怪的方框

Qt TableView remove strange boxes

我想使用 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();
}

否则,您将为每个 ItemDataRole return 123。

那些 "strange" 框是复​​选框。您的模型表明每个项目都是可检查的。