2017-04-12 13 views
1

QTableViewを使いたいです。これはいくつかのテストの結果です。あなたが見ることができるようにQt TableViewは異常なボックスを削除します

TableView with 4 cells, every cell contains a misterious checkbox-like box

は、コンテンツの「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; 
} 

答えて

3

あなたが使用している役割を示すために、あなたの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のための123を返します。

+3

はい、これが問題です。あなたはQt :: CheckStateRoleの本質的に(Qt :: CheckState)123を返しています。 – milianw

0

「異常な」ボックスはチェックボックスです。あなたのモデルは、各項目がチェック可能であることを示します。

関連する問題