s
solmik24 ноября 2020 г. 15:43

Обращение к ячейке таблицы

table

Добрый день! Подскажите, как в Qt Creator считать/записать данные из таблицы? Нашел только как получать номера строк и столбцов.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
5

А как у Вас хранятся данные в таблице? Если Это SQL модель, то по строке получайте у таблицы значение id и по нему читайте из базы.

M

В каком виде Вы выводите данные? Как данные у Вас хранятся?

s
  • 25 ноября 2020 г. 6:58

Таблицу делаю в Qt Creator, заполняться она должна вручную с клавиатуры, потом эти значения должны обрабатываться и результат заноситься обратно в таблицу. Я не знаю как выбрать и занести данные в таблицу QTableWidget.

Вам нужно наследоваться от QAbstractTableModel, выбрать в каких контейнерах и как будите хранить данные и уже у них по индексу будите получать данные.
Вот под рукой пример был на питоне, на плюсах также

class ModelHosts(QAbstractTableModel):# модель host
    hostStructure = []
    signalChangeChecked = pyqtSignal(int, bool)

    def __init__(self): # инициализация модели
        super(ModelHosts, self).__init__()
        self.hostStructure = []

    def setDataAll(self, hostStructure): # ввод данных в модель
        self.hostStructure = hostStructure

    def clearModel(self): # очитка модели
        self.hostStructure = []

    def getId(self, row):
        return self.hostStructure[row].id

    def getHostStructur(self, row):
        return self.hostStructure[row]

    def rowCount(self, parent=None): # возвращает число строк
        return len(self.hostStructure)

    def columnCount(self, parent=None):  # возвращает число столбцов
        return 5

    def data(self, index, role=None): # возвращает данные для ячеек
        if   index.column() == 0 and role == 0:
            return self.hostStructure[index.row()].name
        elif index.column() == 1 and role == 0:
            return self.hostStructure[index.row()].host
        # elif index.column() == 1 and role == 10:
        #     return self.hostStructure[index.row()].checked
        elif index.column() == 2 and role == 0:
            return self.hostStructure[index.row()].port
        elif index.column() == 3 and role == 0:
            return self.hostStructure[index.row()].pathFolder
        elif index.column() == 4 and role == 0:
            return self.hostStructure[index.row()].description
        return None

    def headerData(self, section, orientation, role=None): # возвращает названия столбцов
        if section == 0 and role == QtCore.Qt.DisplayRole and orientation == 1:
            return "Имя хоста"
        elif section == 1 and role == QtCore.Qt.DisplayRole and orientation == 1:
            return "Путь хоста"
        elif section == 2 and role == QtCore.Qt.DisplayRole and orientation == 1:
            return "Порт"
        elif section == 3 and role == QtCore.Qt.DisplayRole and orientation == 1:
            return "Директория федерации"
        elif section == 4 and role == QtCore.Qt.DisplayRole and orientation == 1:
            return "Описание"
        else:
            # return None
            return QAbstractTableModel.headerData( self, section, orientation, role )

s
  • 27 ноября 2020 г. 12:44

Спасибо, разобрался, у меня получилось немного не так, таблица создавалась в Qt Creator,
рядом с таблицей поставил кнопку и вот слот обработки сигнала этой кнопки:

void MainWindow::on_pushButton_2_clicked()
{
int i = 1;
int j = 1;
QString str;

str = ui->tableWidget->item(i, j)->text(); //Запись данных ячейки в переменную

str = str + "aaa";   // Обработка данных
j++;                 // Выбор другой ячейка таблицы

ui->tableWidget->setItem( i, j, new QTableWidgetItem(str)); //Запись в ячейку из переменной

}

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
TG

C++ - Тест 001. Первая программа и типы данных

  • Результат:53баллов,
  • Очки рейтинга-4
TG

C++ - Тест 001. Первая программа и типы данных

  • Результат:60баллов,
  • Очки рейтинга-1
TN

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
Последние комментарии
t
  • t1m4
  • 23 января 2021 г. 8:28

Django - Урок 052. Переопределение модели пользователя

Добрый день, Я вот написал в admin.py admin.site.register(User, UserAdmin) Но у меня не появилось новые поля в админке?

Django - Урок 001. Развёртывание сайта на Django + PostgreSQL + Gunicorn + Nginx

Ошибка в конфиге инжинкса про статику в root последний слеш лишний путь в таком виде получается /home/user/myprojectenv/myproject/myproject//static

Qt/C++ - Урок 061. Добавление изображений в приложение методом Drag And Drop из файлового менеджера

// Вместо отрисовки иконки и текста будем отрисовывать только одно изображение // с небольшими отступами в 5 пикселей QPixmap pix(m_model->data(index).toString()); …
m
  • magrif
  • 19 января 2021 г. 12:37

Qt Сертификация

Здравствуйте. Подскажите, оплачивать ваучер прямо в выбранном тестовом центре? Можно ли загранник предъявить? Или свой паспорт, а заполнить транслитом? А то там пишут: Your name must exactl…
r
  • retmas
  • 17 января 2021 г. 4:09

Qt/C++ - Урок 074. Генерация псевдослучайных чисел с использованием случайной библиотеки STD

Дмитрий, решает. Просто автор, видимо, не сильно озаботился изучением документации QRandomGenerator. Да и в листинге с использованием qrand вызов функции qsrand на каждой итерации цикла нав…
Сейчас обсуждают на форуме
D

QScrollArea dynamically add QCheckBoxes

Привет всем участникам! Класный у вас сайт! Нашёл познавательное в сети: «Марш достоинства»: тысячи испанцев требуют социальной справедливости http://electek.ru/news/11182-marsh-dostoinstva…

Не получается prefetch_related на M2M полях

это да. и правильнее всего было бы сделать все фильтрации и только в самом конце вызвать prefetch_related например, если все это уходит в шаблон, я бы поступил следующим образом: def so…
  • BlinCT
  • 23 января 2021 г. 9:25

Правильное расположение элементов в ListView

Вся проблема в тмо что у меня репитор который должен правильно создавать по индексам эти ячейки. В случаи данной момедли 2 столбца а после засунуть туда правильный текст из модели. Вот тут какой…
s

qml и С++ setproperty

Доброе время суток. Вопрос может быть банальный... но не для меня ((( есть ли возможность при создании динамической переменной через функцию с++ "setProperty" этой переменной пол…

Ошибка при работе утилиты не удалось получить фабрику класса com для компонента с clsid

Проблема решилась. Оказывается для работы нужно чтобы был установлен Microsoft Office. Причем об этом нигде не было сказано.
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB