我刚开始使用Qt编程,而我试图让使用了模型类我自己的创作从QTableView继承的QAbstractTableModel控制一个简单的表格数据的布局。出于某种原因,我的表视图端部看起来像这样:

“ALT文本” 结果 <子>(来源: 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设计,并且类的对话内附上模型到视图这样的:

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中误解。

其他提示

任何机会你碰巧设置的Qt :: ItemIsUserCheckable 标志()标志?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top