【发布时间】:2012-09-01 21:51:36
【问题描述】:
我开始学习Qt,我想通过QTableView实现一个填充数据的表格。我的问题是,我不知道如何从单元格中删除复选框。好像是默认放入的。
但是,我读到我必须返回一个 NULL-QVariant,但这不是我想要的,因为我还有数据要输入。
到目前为止,这是我的代码:
QVariant MyModel::data(const QModelIndex &index, int role) const
{
int row = index.row();
int col = index.column();
QString daten;
switch (col)
{
case 0:
{
daten = "column 1";
break;
}
case 1:
{
daten = "column 2";
break;
}
case 2:
{
daten = "column 3";
break;
}
case 3:
{
daten = "column 4";
break;
}
}
return daten;
}
现在,如您所见,我想用名为“daten”的 QString 填充单元格。但是在字符串旁边的每个单元格中都有一个复选框。
有人知道如何删除复选框,但仍然用“daten”填充内容吗?
谢谢!
【问题讨论】:
-
复选框?您是否有可以删除的
Qt.ItemIsUserCheckable标志? -
在你的
data中,你应该(1)考虑index无效的情况,(2)确保在返回data之前检查角色(应该是Qt.DisplayRole用于基本显示)。 -
好的,谢谢,这行得通!你能解释一下这些线有什么影响吗?
-
你指的是哪几行?
-
好吧,你告诉我要添加的那些: if (!index.isValid()) return QVariant(); if (role != Qt::DisplayRole) return QVariant();
标签: qt qtableview qabstracttablemodel