Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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


Код:

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, 22:02   #2
SAMOUCHKA
Участник клуба
 
Регистрация: 07.08.2011
Адрес: Димитровград
Сообщений: 550
Репутация: 126

skype: ilya10009
По умолчанию

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

если так есть решение
Код:

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, хранит объекты класса данных.

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст и формула в ячейке Kuzia1528 Microsoft Office Excel 32 02.06.2016 16: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


12:11.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru