Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Nerfair от Июль 24, 2012, 21:07



Название: JSON хранение полученных данных
Отправлено: Nerfair от Июль 24, 2012, 21:07
Добрый день, нужно вывести получаемые от сервера цитаты в программу, с возможностью переключаться кнопкой на след цитату.

И так, что умею:

Получать от сервера ответ по POST запросу.

Код:
{ "error" : 0, "quotes" : [ { "id" : 1, "text" : "Цитата 1"}, { "id" : 2, "text" : "Цитата 2"}, { "id" : 3, "text" : "Цитата 3"} ] }

Грузить его в переменную:

Код:
var result = JSON.parse(xhr.responseText);

И выводить через JavaScript функцию в Text

Код:
loadQuote(result["quotes"]);
Код:
function loadQuote(quotes) {
quoteText.text = quotes[0]["text"]
}

где
Код:
Text {
id: quoteText;
font.pixelSize: 14
text: ""
color: "#FFF";

Есть вопрос, тут я вывел первую цитату, а как сделать переключение на след цитату? Для этого нужно где то хранить весь вывод цитат с сервера, в каком то массиве, что бы по клику можно было загружать quote[+1]["text"] самописной функцией, допустим onClicked: loadNextQuote(id), где id каждый раз след. значение,  но эта функция как раз и должна брать откуда то данные, а я все не пойму как в Qt это все провернуть. Я читал про глобальные переменные, не вышло, залез в Scope, вылез ибо лес. Возможно кто то сталкивался с похожей проблемой.


Название: Re: JSON хранение полученных данных
Отправлено: mutineer от Июль 24, 2012, 22:00
Ты бы хоть написал что тебе в QML это надо. Делаешь у корневого объекта property, в который записываешь свое quotes


Название: Re: JSON хранение полученных данных
Отправлено: Nerfair от Июль 25, 2012, 10:08
Ты бы хоть написал что тебе в QML это надо. Делаешь у корневого объекта property, в который записываешь свое quotes
Cannot assign QVariantList to QString


Название: Re: JSON хранение полученных данных
Отправлено: mutineer от Июль 25, 2012, 10:11
щас буду гадать по посту.
Наверно ты объявил проперти стринговым? Если да, то зачем, если собираешься в нем список хранить?


Название: Re: JSON хранение полученных данных
Отправлено: Nerfair от Июль 25, 2012, 10:13
щас буду гадать по посту.
Наверно ты объявил проперти стринговым? Если да, то зачем, если собираешься в нем список хранить?

Прав, помоги пожалуйста, как его еще объявить? Знаю int, bool, string и сейчас поищу другие.

Нашел http://doc.qt.nokia.com/4.7-snapshot/qdeclarativebasictypes.html

Сейчас попробую выбрать.


Название: Re: JSON хранение полученных данных
Отправлено: mutineer от Июль 25, 2012, 10:16
Есть еще Object и Array должен быть
а если типы выше не подойдут, то спасет variant


Название: Re: JSON хранение полученных данных
Отправлено: Nerfair от Июль 25, 2012, 10:49
Есть еще Object и Array должен быть
а если типы выше не подойдут, то спасет variant

    property variant questionsArray: "";

Помог, спасибо  ;)