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

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

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

25
задан Glorfindel 27 June 2019 в 04:03
поделиться

2 ответа

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

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

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

51
ответ дан 28 November 2019 в 20:43
поделиться

Вы случайно не устанавливаете флаг Qt::ItemIsUserCheckable в flags()?

2
ответ дан 28 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: