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

معرفی و آموزش کتابخانه‌ی 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

  • تشکر شده 2

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


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

احسنت! دست مریضاد...

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


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

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

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

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

×