Подтвердить что ты не робот

QTableView имеет нежелательные флажки в каждой ячейке

Я только начинаю программировать на Qt и пытаюсь создать простую табличную разметку данных, используя элемент управления QTableView с классом модели моего собственного создания, унаследованным от QAbstractTableModel. По какой-то причине мой табличный вид выглядит так:

alt text
(источник: 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";
}

Пользовательский интерфейс диалога встроен в Qt Designer, и внутри класса для диалога я присоединяю модель к представлению следующим образом:

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

Кроме этого я не выполняю никаких операций над ui.testTable.

Использование Qt 4.6.

4b9b3361

Ответ 1

Попробуйте изменить MyTableModel::data() на следующее:

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

Вероятно, возвращаемый QVariant для роли Qt::CheckStateRole был непонят QTableView.