crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику ernie ::: Спасибо сказали: 11 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
24.2.2012, 12:17 Ответ от сервера. HELP
Цитата(Nick5 @ 24.2.2012, 17:56) *
Цитата(ernie @ 23.2.2012, 19:50) *
Начнём с того ,что я бы сначала засунул xml которая приходит от сервера в QDomDocument:
QDomDocument doc;
doc.setContent(тут ответ от сервера в QByteArray или QString);
А потом бы там уже искал:
QDomNodeList list = doc. elementsByTagName("upload"); //тут получили лист элементов upload,как я понимаю,он у вас один в xml'ке,значит дальше можно так сделать:
QDomNode node = list.item(0);
а таперь попробовать можно и значение получить:
QString uploadFileName = node.nodeValue();

Вот как - то так,надо пробовать и смотреть ,я могу ошибаться



И кстати да,вам же еще ответ надо от сервера получить,для этого в ваш код надо добавить:

connect(manager,finished ( QNetworkReply * ),this,ващ слот для обработки ответа(QNetworkReply * ));

Скажем слот назовём handleReply,Значит примерно такой код будет:

void вашкласс::handleReply(QNetworkReply *reply)
{
QByteArray content = reply->readAll();
//тут код,который я писал выше

}


не совсем понял, что здесь в скобках писать
doc.setContent(тут ответ от сервера в QByteArray или QString);
скажите пожалуйста, что именно здесь стоит написать?


Вот смотрите :
тут вы получаете содержание ответа сервера: QByteArray content = reply->readAll();
а потом этот ответ заворачиваете в QDocDocument:
doc.setContent(content);
Nick5,
17.2.2012, 12:55 tray и вызов модального виджета
maint , что значит остановить работу программы? в общем пока сложно сказать нужно уточнить вопрос. Пока что можнол только предложить сделать слоты startApp() и stopApp() , перед вызовом диалога делать stopApp() и соединить сигнал закрытия диалога со слотом startApp(),как то так
maint,
12.2.2012, 17:28 resize event
Цитата(ruzik @ 12.2.2012, 22:09) *
Здравствуйте, у меня вопрос, resize event в виджете вызывается до изменения размеров или уже после?
Заранее спасибо!

When resizeEvent() is called, the widget already has its new geometry

Т.е. после .
ruzik,
11.2.2012, 19:32 QtCreator. Пути к бибилиотекам
Цитата(Алексей1153 @ 12.2.2012, 0:33) *
думаю, вопрос по теме и сюда.

Скачал и поставил на новый ноут с офсайта дистрибутив Qt IDE для винды (1.3 гига) . Поставил, всё нормально. QtCreator запускаю, открываю созданный ранее, на другом компе (и другой версии креатора) проект - компилятор ругается, что нет файла <stdint.h> , где, судя по всему, определены типы навроде uint32_t

в папке IDE нет такого файла вообще! Или его переименовали ?


Есть такой файл у меня в MinGw для винды в инклудах. Может MinGw криво встал?я его вообще отдельно ставил,посвежее версию чем в Qt
Алексей1153,
29.1.2012, 14:16 Проблема с подключением слота
вы зря наверное в .h файле таким образом реализуете функцию.
Вот так вроде должно работать.

class myTabWidget : public QTabWidget
{

Q_OBJECT

public slots:
void plusTab(){
this->addTab(new QLabel("new tab", this), "new tab");

};

};
dr-jazz,
3.10.2011, 3:38 Создание элементов внутри условий
    int value=1,max=2,min=0;
    float step = 1;
    QAbstractSpinBox *spinBox;
    if (step > 1)
       spinBox= new QSpinBox();
    else
       spinBox = new QDoubleSpinBox();

    qobject_cast<QSpinBox*>(spinBox)->setValue(value);
    qobject_cast<QSpinBox*>(spinBox)->setMinimum(min);
    qobject_cast<QSpinBox*>(spinBox)->setMaximum(max);
    qobject_cast<QSpinBox*>(spinBox)->setSingleStep(step);


Как насчет такого варианта?
RazrFalcon,
2.5.2011, 6:24 Изменения координат виджетов в тулбаре
ruzik , со спэйсерами работаете так:
1.создаёте SpacerItem
2.устанавливаете ему размеры.
3.в лайауте делаете addItem
ruzik,
28.4.2011, 8:57 Заполнить виджет окна...
silver47,ну да,с высотой ячеек я погорячился что-то:))
По поводу как узнать,что размеры таблицы изменились,resizeEvent чем плох?
fortero,
14.12.2010, 12:53 загрузка видео на Youtube
Всё,сделал,вот полностью рабочий запрос.
QFile f("C:\\video.avi");            //video file
    f.open(QIODevice::ReadOnly);
    QByteArray fileBinaryData = f.readAll();
    f.close();
    QNetworkRequest request;
    request.setUrl(QUrl("http://uploads.gdata.youtube.com/feeds/api/users/default/uploads"));
    request.setRawHeader("Host","uploads.gdata.youtube.com");
    request.setRawHeader("Authorization","GoogleLogin auth="+auth);
    request.setRawHeader("GData-Version","2");
    request.setRawHeader("X-GData-Key","key=devkey");
    request.setRawHeader("Slug","C:\\video.avi");
    request.setRawHeader("Content-Type","multipart/related; boundary=\"f93dcbA3\"");
    request.setRawHeader("Connection","close");
    QByteArray reqString;
    reqString.append("--f93dcbA3\r\n");
    reqString.append("Content-Type: application/atom+xml; charset=UTF-8\r\n");
    reqString.append("\r\n");
    reqString.append("<?xml version=\"1.0\"?>\r\n");
    reqString.append("<entry xmlns=\"http://www.w3.org/2005/Atom\"\r\n");
    reqString.append("xmlns:media=\"http://search.yahoo.com/mrss/\"\r\n");
    reqString.append("xmlns:yt=\"http://gdata.youtube.com/schemas/2007\">\r\n");
    reqString.append("<media:group>\r\n");
    reqString.append("<media:title type=\"plain\">Test</media:title>\r\n");
    reqString.append("<media:description type=\"plain\">\r\n");
    reqString.append("Batafa\r\n");
    reqString.append("</media:description>\r\n");
    reqString.append("<media:category ");
    reqString.append("scheme=\"http://gdata.youtube.com/schemas/2007/categories.cat\">People\r\n");
    reqString.append("</media:category>\r\n");
    reqString.append("<media:keywords>ara,arara</media:keywords>\r\n");
    reqString.append("</media:group>\r\n");
    reqString.append("</entry>\r\n");
    reqString.append("--f93dcbA3\r\n");
    reqString.append("Content-Type: video/mpeg\r\n");
    reqString.append("Content-Transfer-Encoding: binary\r\n");
    reqString.append("\r\n");
    reqString.append(fileBinaryData);
    reqString.append("\r\n");
    reqString.append("--f93dcbA3\r\n");
    request.setRawHeader("Content-Length",QString::number(reqString.length()).toUtf8());
    netmen2 = new QNetworkAccessManager();
    netmen2->post(request,reqString);
    connect(netmen2, SIGNAL(finished(QNetworkReply*)), this, SLOT(handleUploadReply(QNetworkReply*)));
crashsp,
27.10.2010, 15:02 Динамическая компоновка в GridLayout.
Drag&drop я ручками реализовывал,но только не в grid,а в box лайауте,по поводу того как это стандартными средствами лайаутов сделать - не нешёл.
Я делал так:в начале drag'а виджет убирается с лайаута,на его место - спейсер(чтоб не разъехались виджеты),потом обрабатывал перемещение виджета по нужной зоне,а при дропе снова цеплял виджет к нужной ячейке лайаута.Можно это сделать через кастомный лайаут,но там придётся поведение так же ручками описывать.Возможно еще вариант подскажут.
call_me_Frank,
18.10.2010, 10:44 как добавить программу в трей
System Tray Icon Example в assistant'е гляди
eldar85,

RSS Текстовая версия Сейчас: 29.3.2024, 3:39