Russian Qt Forum
Ноябрь 23, 2024, 13:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QJsonArray --> QTable  (Прочитано 5052 раз)
NKovalev64
Гость
« : Январь 19, 2013, 12:09 »

Есть такой вопрос: есть блок данных принемаемых от сервера, сами данные в JSON и представляют из себя таблицу. Парсить JSON в qt я уже умею, но тут нужно сразу весть блок данных отобразить в виде таблицы, как это можно оптимально сделать?
Вобщем, как такое :
"person": [
{
        "name": "val1",
        "age": "val1",
        "date": "val1
},
{
        "name": "val2",
        "age": "val2",
        "date": "val2
}
]
 
превратить в такое:
+-------------------+
|Name   Age     Date|
+-------------------+
|val1   val1    val1|
+-------------------+
|val2   val2    val2|
+-------------------+
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Январь 19, 2013, 21:14 »

ты не можешь почитать документацию по QTableWidget? или в чем проблема?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Nimbus
Гость
« Ответ #2 : Январь 20, 2013, 07:42 »

Видимо, отрок толкует, что ему неудобь зиждать итем на каяждо икону и становить её в экземпляр красеного угла.
Бысть давеча класс вышелетный глаголемый бусурманаме QTableView благопоспешествовати отроку
Записан
NKovalev64
Гость
« Ответ #3 : Январь 23, 2013, 09:40 »

Значения val могут быть разных типов, в моем случае это bool, double и qstring. Я пока что сделал вручную обход массива данных и помещение их в qtablewidget , но они помещаются с проблемами, например:
Если вставлять double значение в ячейку то оно отображается в экспоненциальной форме, что меня не устраивает.
Если же вставлять double как строку, то число отображается нормально но так как числа в столбце есть по сути  строки, то столбец не правильно сортируется.
В итоге мне нужно чтобы в ячейке типа double отображалось число в нормальной форме.

P.s.
ты не можешь почитать документацию по QTableWidget? или в чем проблема?
Кэп, череп не жмет?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Январь 23, 2013, 14:33 »

с подобного описания проблемы и надо было начинать, а не «как отобразить массив значений в таблице».

для нужной сортировки нужно переопределить оператор < у QTableWidgetItem и написать там как сортировать «строковые» числа.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #5 : Январь 24, 2013, 03:32 »

Пример переопределения оператора сравнения для целого числа:
Код:
class UIntTableWidgetItem: public QTableWidgetItem
{
protected:
    virtual bool operator < (const QTableWidgetItem & other) const
    {
        qint32 a = text().toInt();
        qint32 b = other.text().toInt();
        return a < b;
    }
};

может быть это поможет Подмигивающий
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 23.