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

دانلود فایل

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 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 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 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 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 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 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 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 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 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 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

                      • Login

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