رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

mohammad_0111

کاربـــر عـــــادی
  • تعداد ارسال ها

    9
  • تاریخ عضویت

پست ها ارسال شده توسط mohammad_0111


  1. در در 23 خرداد 1400 در 08:56، کامبیز اسدزاده گفته است :

    درود،
    خب خطای ساطع شده چی هست؟ از سمت سرور چه پیامی دریافت می‌کنید؟

    من با خود Qt هم تست کردم ولی بازم به مشکل خوردم.
     

    ftp::ftp(QObject *parent) : QObject(parent)
    {
        connect(&manager, &QNetworkAccessManager::finished, this, &ftp::finished);
    }
    
    void ftp::uploadFile(QString path)
    {
        QString disposition = "form-data; name=\"image\"";
        if(path.startsWith("file:///")) path = path.remove(0,8);
    
        QFileInfo fileInfo(path);
        if(!fileInfo.exists())
        {
            complete("1000");
        }
    
        QMimeDatabase db;
        QMimeType type = db.mimeTypeForFile(path);
        QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
    
        QHttpPart part;
        part.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(type.name()));
        part.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(disposition));
    
        QFile *file = new QFile(path);
        file->open(QIODevice::ReadOnly);
        part.setBodyDevice(file);
        file->setParent(multiPart);
    
        multiPart->append(part);
    
        QNetworkRequest request;
        QUrl url;
        url.setUrl(ftpUrl);
        url.setUserName(ftpUsername);
        url.setPassword(ftpPassword);
        request.setUrl(url);
    
        QNetworkReply *reply = manager.put(request,multiPart);
        multiPart->setParent(reply);
    
        files.insert(reply,file);
    }
    
    void ftp::finished(QNetworkReply *reply)
    {
        QVariant statusCode = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute );
    
        emit complete(statusCode.toString());
    
    }
    
    
    

    من وقتی آدرس ftp رو به شکل صحیح یعنی  

    "ftp://..."

    نه تنها نتیجه بلکه هیچ اروری هم دریافت نمیکنم.
    ولی وقتی ادرس رو بصورت:

    "http://..."

    ارور 405 دریافت میکنم.


  2. در در 23 خرداد 1400 در 08:56، کامبیز اسدزاده گفته است :

    درود،
    خب خطای ساطع شده چی هست؟ از سمت سرور چه پیامی دریافت می‌کنید؟

    سلام استاد.وقت بخیر.
    متاسفانه من چک کردم و ارور نامشخص بود بصورت زیر:
     

    qml: undefined
    qml: undefined

    کدهای خودم رو هم چک کردم با اینکه آدرس فایل رو به تابع ارسال میکردم ولی اصلا داخل متد ازش استفاده نکرده بودم و درکل جایی هم نتونستم پیدا کنم که بهش آدرس فایل رو پاس بدم.
     


  3. در در 18 خرداد 1400 در 11:07، کامبیز اسدزاده گفته است :

    سلام،

    برای این کار بهترین روش این هست که سمت ++C چنین نیاز رو پوشش دهید، به کمک کلاس‌های موجود در ماژول QtNetwork مانند QNetworkAccessManager و QNetworkReply.

    اما اگر تأکید بر این دارید که در سمت Qt Quick و JS این کار صورت بگیره، می‌تونم پیشنهاد کنم از شیء XMLHttpRequest استفاده کنید.

    برای دریافت فایل هم کافی است مسیر گرفته شده از طریق FileDialog را به درستی در ورودی تابع send از XMLHttpRequest تعریف کنید.

    در صورت نیاز کدتون رو قرار بدین تا بیشتر بررسی بشه.

    سلام استاد.وقتتون بخیر.
    امیدوارم حالتون خوب باشه.
    من از کدهای زیر استفاده کردم ولی متاسفانه خطا داشت. حالا یه مشکل دیگه هم بود اینکه احساس میکنم تو این روش به پوشه بندی های درون پوشه اصلی FTP نمیشه دسترسی داشت.
     

    function uploadFile(filePath){
        var xml = new XMLHttpRequest();
        xml.onreadystatechange = function(){
            if(this.status === 200 && this.readyState === 4){
                console.log(true);
            }
            else{
                console.log(false);
            }
        }
        xml.open('POST','serverip',true,'username','password');
        xml.send()
    }

    درکل من به این صورت استفاده کردم ولی مشکل داشت.و فکر کنم محدودیت هم داره.
    درمورد کتابخونه های داخل Qt که بهشون اشاره کردین مثالی یا چیزی باشه که بتونم آپلود فایل رو پیاده کنم ممنون میشم.


  4. سلام.وقتتون بخیر.
    خسته نباشید.
    سوالی که برای من پیش اومده وقتی میخام داخل qml فایل رو از File Dialog دریافت کنم و با FTP آپلود کنم روی هاست متاسفانه این امکان وجود نداره سمت بک اند هم نتونستم حتی فایل رو پاس بدم و یا آپلود کنم، ولی بیشتر دوس دارم این کارو با js داخل qml انجام بدم ولی حتی نتونستم فایل رو با File Dialog بگیرم.

    ممنون میشم راهنمایی کنید.


  5. در 9 ساعت قبل، کامبیز اسدزاده گفته است :

    درود،

    این نمونه رو امتحان کنید.

    
    regExp: /^[a-zA-Z0-9]+([a-zA-Z0-9](_|-| |.)[a-zA-Z0-9])*[a-zA-Z0-9]+$/

     

    سلام و درود استاد عزیز، بله کارکرد. دستتون درد نکنه.
    متاسفانه داخل qml  با regular expression هایی که در سطح وب هست درست ولیدت نمیکنه یا مثلا داخل داکیومنت های خود سایت qt اشاره کرده که میشه از regular expression هایی که برای js استفاده شده استفاده کرد ولی کارنمیکنن و باید خودمون بنوعی طراحی کنیم.


  6. سلام.وقتتون بخیر.
    امیدوارم حالتون خوب باشه.
    من برای ولیدت کردن تکست فیلد نام کاربری از کد زیر استفاده میکنم.ولی متاسفانه بعد از استفاده از regular expression زیر برای نام کاربری، دیگه نمیتونم هیچ مقداری رو داخل تکست فیلد وارد کنم.

    TextField{
      Layout.preferredWidth: parent.width
      font.family: appTextFont.name
      font.pixelSize: designSettingItem._textFontSize
    
      validator: RegExpValidator { regExp: /^[a-zA-Z0-9]([._-](?![._-])|[a-zA-Z0-9]){3,18}[a-zA-Z0-9]$/ }
    }

    این regular expression رو هم از سطح وب پیدا کردم.


  7. در ۱ ساعت قبل، کامبیز اسدزاده گفته است :

    درود،

    برای این کار شما باید به شیوهٔ Button تغییرات رو اعمال کنید، چرا که نوع کنترل TabButton مشتق‌ شدهٔ کنترل اصلی است.

    برای این کار کافیه به روش سفارشی سازی Button عمل کنید.

    مثال:

    
    
     
     
    import QtQuick 2.12
     
    import QtQuick.Controls 2.12
     
     
     
    TabButton {
     
    id: control
     
    text: qsTr("Button")
     
     
     
    contentItem: Text {
     
    text: control.text
     
    font: control.font
     
    opacity: enabled ? 1.0 : 0.3
     
    color: control.down ? "#17a81a" : "#21be2b"
     
    horizontalAlignment: Text.AlignHCenter
     
    verticalAlignment: Text.AlignVCenter
     
    elide: Text.ElideRight
     
    }
     
     
     
    background: Rectangle {
     
    implicitWidth: 100
     
    implicitHeight: 40
     
    opacity: enabled ? 1 : 0.3
     
    border.color: control.down ? "#17a81a" : "#21be2b"
     
    border.width: 1
     
    radius: 2
     
    }
     
    }

     

    حل شد.
    ممنون استاد بابت راهنمایی تون.

    • پسندیدن 1

  8. سلام.وقتتون بخیر.
    من میخام فونت TabButton رو تغییر بدم و حتی سایز فونت رو افزایش بدم ولی متاسفانه کار نمیکنه.کد هم بصورت زیر هست:
     

    TabBar{
            id: account_tabBar
            width: parent.width
            currentIndex: 1
    
            TabButton{
                text: "تغییر رمز"
                Font.family: appTitleFont.name
                Font.pixelSize: designSettingItem._titleFontSize3
            }
            TabButton{
                text: "پروفایل"
            }
    }

    مقدار appTitleFont و designSettingItem._titleFontSize3 از قبل تنظیم شدند و درموارد دیگری هم استفاده کردم و کار هم کردند.

    اروری هم که میده بصورت زیر هست.
     

    Non-existent attached object

    برای خطی هست که فونت فامیلی رو ست کردم.
    ممنون میشم راهنمایی کنید.
     


  9. سلام.وقتتون بخیر.
    من مدتی هست که با کتابخانه Qt کارمیکنم و از فناوری Qt Quick استفاده میکنم.مشکلی که دارم مشکل واکنش گرا کردن سایز متن هست این اصلی ترین مشکل من در طراحی با QML است. کتاب استاد اسد زاده رو نیز تهیه کردم ولی درمورد واکنش گرا بودن توضیح کم بود و نتونستم مثال کاربردی و درکل درکی از این موضوع داشته باشم.
    ممنون میشم اگر این موضوع و نحوه ریسپانسیو کردن سایز متن رو کسی توضیح بده.
    اگر با مثال باشه خیلی عالی میشه?

×
×
  • جدید...