رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
سید محمد عباسی

معرفی و آموزش کتابخانه‌ی Chilkat


پست های پیشنهاد شده

با سلام خدمت شما دوستان، درخدمت شما هستم با آموزش کتابخانه‌ی chilkat، کتابخانه‌ای مفید و کارآمد برای کار با شبکه، که بیشترین تمرکز را در شبکه دارد! به راحتی می‌توانید با این کتابخانه کار کنید. کافیست کمی به زیر و بم این کتابخانه اشنا شوید تا انچه برنامه شما به شبکه نیاز دارد براورده سازد! در این اموزش نحوه اضافه کردن کتابخانه  در محیط Qt Creator همراه با یک مثال ساده دانلود فایل را یاد خواهید گرفت.

ابتدا نسخه متناسب با کامپایلر خود را از اینجا دانلود کنید و سپس گام به گام این مراحل را انجام دهید.

1.روی پروژه خودتان راست کلیک کنید و گزینه AddLibrary را انتخاب کنید.همانند تصویر زیر:

setp1.jpg

2.گزینه ExternalLibrary را انتخاب کنید، روی Next کلیک کنید.

setp2.jpg

3.تیک مربوط به نوع سیستم عامل خود را انتخاب کنید(در این مثال Linux) و فایل libchillat-9.5.0.a را انتخاب کنید، روی Next کلیک کنید.

setp3.jpg

4.در اینجا با کلیک بر روی Next کتابخانه را به پروژه خود اضافه کنید.

final.jpg

5. برنامه را اجرا کنید.

run.jpg

فرم را به سلیقه‌ی خود می‌توانید طراحی کنید. اکنون یک کلاس با نام دلخواه اضافه کنید که در این مثال کلاس download  است، ما فقط به یک تابع نیاز خواهیم داشت که ادرس فایل و مکان ذخیره فایل را گرفته و فایل را دانلود کند و در مکان مورد نظر ذخیره کند.پس چیزی شبیه به این را خواهیم داشت!

 

#ifndef DOWNLOAD_H
#define DOWNLOAD_H

#include <QObject>
#include <QFileDialog>
#include <CkHttp.h>
class Download : public QObject
{
    Q_OBJECT
public:
    explicit Download(QObject *parent = nullptr);
    Q_INVOKABLE bool donwloadFile(const QString & url);
signals:

public slots:
private:
    QString m_filePath;
    bool m_success;
    CkHttp m_http;
};

#endif // DOWNLOAD_H

از Q_INVOKABLE به منظور دسترسی متد در فایل  qml استفاده می‌کنیم، و از متغیر های m_filePath برای ذخیره مکان و m_success برای دانلود و عدم دانلود! از کلاس CkHttp  برای دانلود فایل استفاده خواهیم کرد، این کلاس متد‌‌های مختلفی را فراهم می‌کند، که هر کدام کاربردی دارند! برای دانلود ما از متد Download استفاده می‌کنیم، این متد در صورت موفقیت در دانلود فایل true و عدم دانلود false را برگشت می‌دهد.

در فایل cpp به این صورت تابع خود را تکمیل می‌کنیم!

#include "download.h"
#include <QDebug>
Download::Download(QObject *parent) : QObject(parent)
{
   m_success= m_http.UnlockComponent("30-day trial");
    if(m_success!=true)
        qDebug()<<"Not UnlockComponent Error: "<<m_http.lastErrorText();
}
bool Download::donwloadFile(const QString &url)
{
    m_filePath=QFileDialog::getSaveFileName(nullptr,"محل ذخیره فایل را انتخاب کنید");
    if(m_filePath!="")
    {
        m_success= m_http.Download(url.toUtf8(),m_filePath.toUtf8());
        if(m_success!=true)
        {
            qDebug()<<"Error Download: "<<m_http.lastErrorText();
            return false;
        }
        qDebug()<<"ContentType: "<<m_http.lastContentType();
        return true;
    }
    return  false;
}

بعضی از کلاس های این کتابخانه نیاز به مجوز دارند! بدون مجوز نمی‌توان  از کلاس ها استفاده کرد! در کانستراکت کلاس ابتدا با متد UnlockComponent به مدت 30 روز رایگان استفاده می‌کنیم(30-day trial). در صورتی که مجوز به ما داده شود متغیر m_success برابر با true خواهد شد، در غیر اینصورت می‌توان با متد lastErrorText خطا ها را مشاهده کرد و نسبت به رفع آن اقدام کرد.با استفاده از متد getSaveFileName از کلاس QFileDialog مکان فایل را در صورت انتخاب در متغیر m_filePath ذخیره می‌کنیم، بعد از انتخاب مکان ذخیره فایل بررسی می‌کنیم متغیر m_filePath خالی نباشد!.

متد  Download دو ارگومان ورودی دریافت می‌کند!

1.ادرس فایل

2. محل ذخیره فایل

در صورتی که فایل با موفقیت دانلود شود با متد lastContentType نوع فایل را نمایش داده می‌شود و فایل در مکانی که از قبل انتخاب کردیم ذخیره می‌شود.

به عنوان مثال می‌خواهیم قالب صحفه‌ی نخست iostream را در یک فایل txt ذخیره کنیم! پس به این صورت عمل می‌کنیم.

download.jpg

iostream.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...