Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2018, 21:22   #1
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию Не прорисовуется текст в ячейке таблице

У меня проблема, не прорисовуется текст в ячейке. Я делаю так:


Код:
void TableModel::insertComponent(Type type)
{
    if(type  == CATEGORY)
    {
        std::unique_ptr<Category> category(new Category("Новая категория"));
        mCompositeComponent->addChild(std::move(category));
        this->insertRows(this->rowCount(), 1);
    }
 
    if(type == TEST)
    {
        std::unique_ptr<Test> test(new Test("Новый текст"));
        mCompositeComponent->addChild(std::move(test));
        this->insertRows(this->rowCount(), 1);
    }
}

QVariant TableModel::data(const QModelIndex& index, int role) const
{
    const int row = index.row();
    const int col = index.column();
 
    if (role == Qt::DisplayRole)
    {
       const Component* component = mCompositeComponent->child(row);
       return QString(component->name());
    }
    return QVariant();
}
Код:
void TeacherWidget::addCategoryClicked()
{
    mTableModel->insertComponent(CATEGORY);
}
void TeacherWidget::addTestClicked()
{
    mTableModel->insertComponent(TEST);
}
dimaSlon вне форума Ответить с цитированием
Старый 07.08.2018, 21:02   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

как я понял, вы хотите добавить строку, а она не отображается?

если так есть решение
Код:
void TableModel::updateModel()
{
    // Удаляем строки
    beginRemoveRows(QModelIndex(), 0, row_count - 1);
    endRemoveRows();

    // Добавляем строки
    row_count = dats->size();
    beginInsertRows(QModelIndex(), 0, row_count - 1);
    endInsertRows();
}
row_count -это член класса типа int, хранит число строк.
dats -это QList, хранит объекты класса данных.

Тут была задача полностью обновить модель. по этому сначала, все строки удаляются, а потом вставляются заново.
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст и формула в ячейке Kuzia1528 Microsoft Office Excel 32 02.06.2016 15:54
Текст не виден в ячейке! ИнАрт Microsoft Office Excel 4 04.02.2014 10:56
Скопировать текст содержащийся в ячейке таблицы и вставить этот текст в место документа помеченное закладкой. LiliPOOtin Microsoft Office Word 3 17.04.2013 19:51
программно в 1 таблице, 1 строке, 1 ячейке таблицы Ворд сделать нужный текст Ципихович Эндрю Microsoft Office Word 5 31.05.2012 04:21
Текст в ячейке - по строкам VictorM Microsoft Office Excel 6 22.03.2012 23:09