c++ - signal - resizecolumntocontents




QTableViewにはすべてのセルに不要なチェックボックスがあります (2)

私はちょうどQtプログラミングを始めていますQTableViewから継承した自分の作成のモデルクラスでQTableViewコントロールを使って、単純な表形式のデータレイアウトを作成しようとしています。 何らかの理由で、私のテーブルビューは次のようになります。

altテキストhttp://users.nerdland.net/tyler/files/pics/qtableview_checkboxes.png

どのセルでもチェックボックスのように見えますが(クリックしても何もしません)、どうすればそれらを消してしまいますか? オブジェクトの名前以外の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デザイナで構築されています。ダイアログのクラスの中で、モデルを次のようにビューに添付します:

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();
}

おそらく、 Qt::CheckStateRole役割のために返されたQVariantは、QTableViewによって誤解されていたでしょう。





qtableview