Russian Qt Forum

Qt => Model-View (MV) => Тема начата: NKovalev64 от Январь 19, 2013, 12:09



Название: QJsonArray --> QTable
Отправлено: 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|
+-------------------+


Название: Re: QJsonArray --> QTable
Отправлено: kambala от Январь 19, 2013, 21:14
ты не можешь почитать документацию по QTableWidget? или в чем проблема?


Название: Re: QJsonArray --> QTable
Отправлено: Nimbus от Январь 20, 2013, 07:42
Видимо, отрок толкует, что ему неудобь зиждать итем на каяждо икону и становить её в экземпляр красеного угла.
Бысть давеча класс вышелетный глаголемый бусурманаме QTableView благопоспешествовати отроку


Название: Re: QJsonArray --> QTable
Отправлено: NKovalev64 от Январь 23, 2013, 09:40
Значения val могут быть разных типов, в моем случае это bool, double и qstring. Я пока что сделал вручную обход массива данных и помещение их в qtablewidget , но они помещаются с проблемами, например:
Если вставлять double значение в ячейку то оно отображается в экспоненциальной форме, что меня не устраивает.
Если же вставлять double как строку, то число отображается нормально но так как числа в столбце есть по сути  строки, то столбец не правильно сортируется.
В итоге мне нужно чтобы в ячейке типа double отображалось число в нормальной форме.

P.s.
ты не можешь почитать документацию по QTableWidget? или в чем проблема?
Кэп, череп не жмет?


Название: Re: QJsonArray --> QTable
Отправлено: kambala от Январь 23, 2013, 14:33
с подобного описания проблемы и надо было начинать, а не «как отобразить массив значений в таблице».

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


Название: Re: QJsonArray --> QTable
Отправлено: gil9red от Январь 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;
    }
};

может быть это поможет ;)