Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Persian
  4. دانلود فایل
QtWS25 Last Chance

دانلود فایل

Scheduled Pinned Locked Moved Persian
12 Posts 2 Posters 5.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    silver
    wrote on 18 May 2012, 14:34 last edited by
    #1

    p{direction:rtl; text-align:right}. سلام
    برای دانلود یه فایل http اینو نوشتم ولی خطا می‌ده
    @ QHttp http;
    QFile *file = new QFile("fileName");
    file->open(QIODevice::WriteOnly);
    http.setHost("http://doc.qt.nokia.com",80);
    int httpGetId=http.get("/qtcreator-2.1-snapshot/creator-qml-application.html",file);@

    Linus Torvalds –
    Software is like sex: it’s better when it's free.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      absfrm
      wrote on 22 May 2012, 13:47 last edited by
      #2

      p{direction:rtl;text-align:right}. این کد قراره چیکار کنه؟؟
      "اینجارو ببین":http://doc.qt.nokia.com/4.7-snapshot/network-download-main-cpp.html

      If You Want You Can!

      1 Reply Last reply
      0
      • S Offline
        S Offline
        silver
        wrote on 22 May 2012, 15:42 last edited by
        #3

        p{direction:rtl; text-align:right}. من می‌خوام یه فایل متنی رو با برنامم دانلود کنم و بعد بخونمش

        p{direction:rtl; text-align:right}. البته اگه نیازی به دانلود نباشه هم بهتره
        مثلا خود کیوت فایل رو توی سرور باز کنه و بخونتش بدون اینکه دانلودش کنه

        p{direction:rtl; text-align:right}. فرض کنید یه فایل متنی توی این آدرسه
        http:\server.com\version.txt
        و شماره نسخه برنامه توشه مثلا ۱٫۰
        حالا می‌خوام برنامه این شماره رو بخونه و چک کنه که آپدیت لازم هست یا آخرین نسخه در حال استفادست.

        Linus Torvalds –
        Software is like sex: it’s better when it's free.

        1 Reply Last reply
        0
        • A Offline
          A Offline
          absfrm
          wrote on 22 May 2012, 16:23 last edited by
          #4

          p{direction:rtl;text-align:right}. سلام
          بهترین کار اینه که یک کلاس بسازی :

          @
          class MyClass : public QObject
          {
          Q_OBJECT

          public:
          MyClass();
          void fetch();

          public slots:
          void replyFinished(QNetworkReply*);

          private:
          QNetworkAccessManager* m_manager;
          };
          @

          بعد به این شکل ازش استفاده کنی :

          @

          MyClass::MyClass()
          {
          m_manager = new QNetworkAccessManager(this);

          connect(m_manager, SIGNAL(finished(QNetworkReply*)),
               this, SLOT(replyFinished(QNetworkReply*)));
          

          }

          void MyClass::fetch()
          {
          m_manager->get(QNetworkRequest(QUrl("آدرس فایل")));
          }

          void MyClass::replyFinished(QNetworkReply* pReply)
          {

          QByteArray data=pReply->readAll();
          QString str(data);
          ......
          

          }
          @

          If You Want You Can!

          1 Reply Last reply
          0
          • S Offline
            S Offline
            silver
            wrote on 22 May 2012, 20:15 last edited by
            #5

            p{direction:rtl; text-align:right}. عباس جان ممنون

            p{direction:rtl; text-align:right}. این خطا رو میده
            error: undefined reference to `QNetworkAccessManager::QNetworkAccessManager(QObject*)'

            p{direction:rtl; text-align:right}. می‌شه یه تابع بنویسی که این کار رو بکنه (نه یه کلاس)

            Linus Torvalds –
            Software is like sex: it’s better when it's free.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              absfrm
              wrote on 23 May 2012, 06:18 last edited by
              #6

              @
              #include <QtNetwork>
              #include <QNetworkAccessManager>
              #include <QUrl>
              @

              p{direction:rtl;text-align:right}. اینارو اینکلود کردی؟
              اینکارو بکن اگر نشد بگو تا 2 تا روش دیگه هم هست اونارو هم تست کنیم

              @
              QT += network
              @

              p{direction:rtl;text-align:right}. اینم به فایل .pro پروژت باید اضافه کنی

              If You Want You Can!

              1 Reply Last reply
              0
              • A Offline
                A Offline
                absfrm
                wrote on 23 May 2012, 06:23 last edited by
                #7

                p{direction:rtl;text-align:right}. تابعی که وصل به هیچ کلاسی نباشه مطمئنا نمیتونه این کارو انجام بده
                چون network مبحث گسترده ای هست
                برای خود منم جای سوال بود که چرا توی C# با 4 خط کد براحتی اینکارو انجام میدادم ولی تو کیوت نمیشه
                بعد که تحقیق کردم دیدم تمامی این کلاسهارو از قبل توی دات نت فریم ورک نوشتن و شما فقط توسط namespace ها و functions ها فراخوانیشون میکنید و اصلا کلاس رو نمیبینید!
                اما اینجا خوبیش اینه که حتی می تونید برنامه ریزی کنید که چطوری به هدف برسید و در راه اگر مشکلاتی بود برطرف کنید که در سی شارپ چنین ویژگی هایی یافت نمیشه،و خودتون باید کلاسشو بنویسید که کار هر برنامه نویسی نیست!

                If You Want You Can!

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  silver
                  wrote on 23 May 2012, 11:29 last edited by
                  #8

                  p{direction:rtl; text-align:right}. ممنون به خاطر توضیحاتت
                  اون QT += network رو به فایل پروژه اضافه کردم درست شد
                  اما هنوز دانلود نمیکنه انگار
                  من str رو توی هدر کلاس public کردم و بیرون کلاس با QMessageBox::information(this,"f", myClass->str); هیچی چاپ نمیشه

                  @#include <QtNetwork/QNetworkReply>
                  #include <QtNetwork/QNetworkAccessManager>
                  #include <QUrl>

                  class downloadUpdate : public QObject
                  {
                  Q_OBJECT

                  public:
                  downloadUpdate();
                  void fetch();
                  QString str;

                  public slots:
                  void replyFinished(QNetworkReply*);

                  private:
                  QNetworkAccessManager* m_manager;

                  };@

                  ====================

                  @#include "downloadupdate.h"

                  downloadUpdate::downloadUpdate()
                  {
                  m_manager = new QNetworkAccessManager(this);

                  connect(m_manager, SIGNAL(finished(QNetworkReply*)),
                       this, SLOT(replyFinished(QNetworkReply*)));
                  

                  }

                  void downloadUpdate::fetch()
                  {
                  m_manager->get(QNetworkRequest(QUrl("https://github.com/silvergit/tictactoe/blob/master/Authors")));
                  }

                  void downloadUpdate::replyFinished(QNetworkReply* pReply)
                  {

                  QByteArray data=pReply->readAll();
                  str=data;
                  

                  }@

                  Linus Torvalds –
                  Software is like sex: it’s better when it's free.

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    absfrm
                    wrote on 23 May 2012, 11:39 last edited by
                    #9

                    p{direction:rtl;text-align:right}. str رو اینجوری پر کن

                    @
                    QByteArray data=pReply->readAll();
                    QString str(data);
                    @

                    If You Want You Can!

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      silver
                      wrote on 23 May 2012, 17:43 last edited by
                      #10

                      خب وقتی توی هدر تعریفش می کنم که دیگه نمی شه اینطوری پرش کرد

                      Linus Torvalds –
                      Software is like sex: it’s better when it's free.

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        absfrm
                        wrote on 23 May 2012, 18:02 last edited by
                        #11

                        p{direction:rtl;text-align:right}. خب بیارش تو cpp تعریف کن.این کد دقیقا به این صورتی که نوشته شده کار میکنه.
                        پیشنهاد میکنم عین کد رو استفاده کن اگر موفق شدی توسعش بده
                        موفق باشی ;)

                        If You Want You Can!

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          absfrm
                          wrote on 23 May 2012, 18:06 last edited by
                          #12

                          p{direction:rtl;text-align:right}. راستی اگر کار نکرد آدرسو به این تغییر بده ببین فایل مستقیم رو میخونه
                          @
                          m_manager->get(QNetworkRequest(QUrl("http://www.catonmat.net/download/awk.cheat.sheet.txt")));
                          @

                          If You Want You Can!

                          1 Reply Last reply
                          0

                          10/12

                          23 May 2012, 17:43

                          • Login

                          • Login or register to search.
                          10 out of 12
                          • First post
                            10/12
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved