簡體   English   中英

QTableView在每個單元格中都有不需要的復選框

[英]QTableView has unwanted checkboxes in every cell

我剛剛開始使用Qt編程,並且嘗試使用QTableView控件進行簡單的表格數據布局,該控件具有我自己創建的模型類,該模型類繼承自QAbstractTableModel 由於某種原因,我的表視圖最終看起來像這樣:

替代文字
(來源: nerdland.net

在每個單元格中看起來像復選框(但當我單擊它們時卻不執行任何操作)的東西到底是什么?如何使它們消失? 除了對象的名稱之外,我沒有更改任何QTableView屬性。

如果重要的話,我的模型代碼就非常簡單:

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";
}

對話框UI是在Qt Designer中構建的,並且在對話框的類中,我將模型附加到視圖上,如下所示:

MyTableModel testModel = new MyTableModel(this);
ui.testTable->setModel(testModel);

除此之外,我對ui.testTable不執行任何操作。

使用Qt 4.6。

嘗試將MyTableModel::data()更改為以下內容:

QVariant MyTableModel::data(const QModelIndex& index, int role) const
{
    if (role == Qt::DisplayRole)
        return "foo";
    else
        return QVariant();
}

返回的QVariant角色Qt::CheckStateRole被QTableView誤解了。

您是否偶然在flags()中設置了Qt :: ItemIsUserCheckable標志?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM