Я просто начинаю со спокойным программированием, и я пытаюсь сделать простое расположение табличных данных с помощью a QTableView
управление с образцовым классом моего собственного создания, наследовавшегося QAbstractTableModel
. По некоторым причинам мое табличное представление заканчивает тем, что было похоже на это:
(источник: nerdland.net)
Каковы в heck те вещи, которые похожи на флажки (но ничего не делайте, когда я нажимаю их) в каждой ячейке, и как я заставляю их уйти? Я не изменил ни одного из 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 создается в спокойном Разработчике, и в классе для диалогового окна я присоединяю модель к представлению как это:
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 в flags()?