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

Ali71321

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

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

  • روز های برد

    3

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


  1. سلام و خسته نباشید

    برای نمایش آیکون به جای استفاده از تصویر png از کاراکترهای یونیکد استفاده کردم ولی متاسفانه وقتی برنامه

    روی اندروید نصب میشه unicode نمایش داده نمیشه.

    اندروید 10 هستش qt 5.15.2  و قطعه کد به شکل زیر می باشد :

    import QtQuick 2.15
    import QtQuick.Controls 2.15
    import QtQuick.Controls 2.12
    Item {
    
        FontLoader
        {
            id: fixedFont
            name: "Corbel"
        }
        Text
        {
            id:currentPosition
            text: qsTr("\u2B57")
    
            font.pixelSize: 36
            x:parent.width-50
            y:parent.height - 150
            font.bold: true
            color: "black"
            opacity: 0.5
            font.family: fixedFont.name
        }
    }

     


  2. سلام مهندس

    من راه حل این مورد و پیدا کردم ظاهرا به ورژن Qt Creator هم ربطی نداشته

    باید در بخش پلاگین نقشه قطعه زیر اضافه بشه :

    PluginParameter
    {
       
         name: "osm.mapping.providersrepository.disabled"
         value: "true"
    }
    PluginParameter 
    {
         name: "osm.mapping.providersrepository.address"
         value: "http://maps-redirect.qt.io/osm/5.6/"
    }

    در ضمن بعد از اینکه این مورد و اضافه کردم و یک بار برنامه رو اجرا کردم و نقشه لود شد

    برای آزمایش این قطعه کد و حذف کردم ولی دوباره برنامه کار کرد.

    محض یادآوری نسخه Qt Creator 6.0.2 هستش و روی پلتفرم ویندوز 10

    از راهنمایی های شما سپاسگذارم مهندس?

    • تشکر شده 1

  3. سلام وقت بخیر مهندس

    روی یک سیستم دیگه اون هم ویندوز 10 داشت و نسخه Qt creator هم 5.0.3 بود مشکلی نبود

    البته من برای بیلد اندروید و انتخاب نکردم 

    روی لپ تاپ هم که مشکل اصلی ماست من دوباره کیوت و نصب کردم و الان نسخه Qt Creator 6.0.2 هستش(نسخه 5.0.3 با نصب آنلاین نصب نمیشه)

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

    فکر میکنم دیگه وقتشه عطای ویندوز و به لقائش ببخشیم و کلا مهاجرت کنیم رو لینوکس?


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

    سلام،

    خب بهتر بود نسخهٔ کیوت و پلتفرم رو هم مشخص می‌کردید.

    به هر حال بدون شک این خطا مربوط به عدم وجود فایل‌های SSL در کتابخانهٔ مربوط به برنامهٔ شماست.

    باید فایل‌های libcrypto_1_1.so و libssl_1_1.so را به آن اضافه کنید.

    جهت پیشنهاد این دستورالعمل را پیگیری کنید: https://github.com/KDAB/android_openssl 

    سلام

    از کیوت نسخه 5.15.2 استفاده میکنم و سیستم عامل ویندوز 10 هست

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

    در واقع میخوام از پلاگین osm برای لود نقشه استفاده کنم ولی متاسفانه این ارور و میده

    و نکته ی دیگه این که فایل هایی که اشاره کردید تو کدوم دایرکتوری باید باشه؟


  5. راه حلی که من پیدا کردم به این شکل هست که برای ایجاد سرور یک کلاس با ارث بری از QTcpServer ایجاد کرده و با استفاده از توابع مجازی

    به هنگام ایجاد یک کانکشن از طرف کلاینت یک thread شخصی سازی شده از طریق ارث بری از QThread فراخوانده شده که متغیر یونیک  

    socketDescriptor به آن پاس داده میشود در این حالت درخواست های هر کلاینت به طور مجزا پاسخ داده میشوند .

    خسته نباشید.


  6. در مورد اتصال به API که روی سرور قرار داره یک موردی وجود داره

    اون هم اینه که با فرض وجود بیش از یک کلاینت هم زمان،

    چطوری میتونیم پاسخ مناسب هر کلاینت و مجزا کنیم که مخصوص همون کلاینت درخواست کننده باشه؟

    مثلا پاسخ مناسب کلاینت شماره 1، X و پاسخ مناسب کلاینت شماره 2،Y هستش ما چطوری میتونیم

    این پاسخ هارو به کلاینت های مورد نظر ارسال کنیم؟

    نکته : ما فقط از یک شماره پورت استفاده میکنیم.

     


  7. با سلام 

    من دوتا فرم دارم که فرم اولم مربوط فرم لاگین هست و فرم دوم مربوط صفحه اصلی برنامه

    میخوام بعد از زدن دکمه ورود فرم اصلی باز بشه و لاگین بسته بشه

    ولی متاسفانه دوباره فرم لاگین بعد از اینکه فرم اصلی باز میشه،اونم باز میشه

    کد من سمت cpp به شکل زیر هست:

    bool Test::status(QString s)
    {
        if(this->Password==s)
        {
            cout<<myEngine.rootObjects().length();
            const QUrl url(QStringLiteral("qrc:/main.qml"));        
            myEngine.load(url);
            if(myEngine.rootObjects().isEmpty())
                return false;
            qDebug()<<s<<"\n";
            return true;
        }
        else
            return false;
    }
    bool Test::initialize()
    { 
        const QUrl url(QStringLiteral("qrc:/MyForm.qml"));
        myEngine.load(url);
        if(myEngine.rootObjects().isEmpty())
            return false;
        return true;
    }

  8. با عرض سلام و ادب

    برای ایجاد یک برنامه اندرویدی که به اطلاعات روی سرور با سیستم عامل ویندوز و دیتابیس sql server دسترسی داشته باشد و 

    سرور به صورت Lockal و یا ممکنه با آی پی استاتیک باشد چکار باید کرد ؟

    پیشاپیش از راهنمایی شما سپاسگزارم


  9. با توجه به اینکه در سوال خودم به مورد transaction اشاره شده همون یک مورد و توضیح میدم امیدوارم مفید باشه:

    Replication از نوع Transaction دوتا حالت داره که عبارتند از:

    نکته : اگر قراره که Replication در بستر اینترنت اجرا بشه باید هر دو طرف هم سرور و هم کلاینت آی پی استاتیک داشته باشند.

    و با توجه به اینکه نحوه اجرای تنظیمات ساده است اگر توضیحات کامل خوانده شوند میتوان به راحتی تنظیمات و اوکی کرد و ضمن اینکه در متن سوال تنطیمات توضیح داده شده اند.

    1_PULL : در این حالت این کلاینت است که درخواست sync اطلاعات از سمت سرور رو خواهد داشت و از بار تحمیل شده به سرور خواهد کاست با این تفاوت که برای سینک کلاینت حتما باید درخواست بفرستد.

    2_Push : اما در حالت دوم این سرور هست که در صورت ایجاد تغییرات در دیتابیس آنرا به همه کلاینت ها ارسال خواهد کرد به شرطی که کلاینت ها آی پی استاتیک معتبر داشته باشند.

    نکته 2: جداولی که Primary key تعریف نداشته باشند اجازه replication نخواهند داشت و اصولا باید هر جدولی کلید اصلی و در صورت نیاز کلید خارجی تعریف شده داشته باشند.

     

    امیدوارم که مفید باشه. موفق باشید.


  10. در در 3 آبان 1400 در 17:11، کامبیز اسدزاده گفته است :

    بله در تنظیمات کیوت‌کریتور و کیت اندروید در پروژه.

    این خطا معمولاً زمانی رخ میده که یا اینترنت در زمان دریافت مخازن مشکل داشته باشه، دسترسی به خواندن و نوشتن در پوشه‌ها ممکن نباشه و یا اینکه تنظیمات در کشِ سیستم به هم خورده باشه.

    توی ویندوز همچین مسری یا با نام کاربری باید باشه: C:\Users\Administrator\AppData\Local واردش بشید و پوشهٔ مربوط به Android رو کلاً حذف کنید.

    از اول با کیوت‌کریتور طبق ویدیویی که دادم پیش برید، مطمئن باشید که اینترنت هم مشکلی نداشته باشه و از وی-پی-ان معتبری استفاده می‌کنید.

    lمهندس از راهنمایی های شما بی نهایت متشکرم تقریبا مشکل حل شده

    فقط سوال اینکه زمان build  کردن هم باید vpn روشن باشه؟؟

    چون همچین اروری میده وقتی build میزنم :

    ? error: * What went wrong:
    A problem occurred configuring root project 'android-build'.
    > Could not resolve all artifacts for configuration ':classpath'.
       > Could not find com.android.tools.build:gradle:3.6.0.
         Searched in the following locations:
           - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.6.0/gradle-3.6.0.pom
           - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.6.0/gradle-3.6.0.jar
           - https://jcenter.bintray.com/com/android/tools/build/gradle/3.6.0/gradle-3.6.0.pom
           - https://jcenter.bintray.com/com/android/tools/build/gradle/3.6.0/gradle-3.6.0.jar
         Required by:
             project :

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

    * Get more help at https://help.gradle.org

    BUILD FAILED in 7s

    لطفا یک VPN معتبر معرفی کنید چون هرچی گرفتم دو روز کار میکنه بعدش از کار میفته
    اللروه ساغلیق مهندس

    <<قاداسی>>


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

    شما که گفتین مطابق آموزش پیش رفتین! این که کیوت ۶.۱ هست ? 

    - من تأکید کردم سری ۶ فقط از نسخهٔ ۶.۲ و ۵ فقط ۵.۱۵ به بعد.

    به هر حال، پیام خطا واضح هست و داره می‌گه که NDK شما قابل شناسایی نیست و باید متغیر مسیر به اون تعریف بشه. به قسمت environment برید در Projects و همین مسیر رو دستی بدین.

    پیشنهاد، تمامی تنظیمات رو حذف و از اول اقدام کنید، روی ویندوز یا لینوکس و یا مک تنظیمات یکسان هستند.

     

    ? متن ارور هارو از پیام قبلی برداشتم که اونموقع 6.1 بود ولی الان 5.15.2 هستش

    در بخش environment  منظور از project همون User variable هستش؟

    و پیام اخطاری که میده که میگه NDK , cmdlinline-tools و نمیشناسه و اینکه

    ممکنه سیستم عامل مشکل داشته باشه؟نیاز به عوض کردن باشه؟

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


  12. در در 30 مهر 1400 در 22:29، کامبیز اسدزاده گفته است :

    خب وقتی تیکِ سبز‌رنگ داره یعنی مشکلی نباید داشته باشه و صرفاً build tools‌های مربوط به api‌های اخیر رو دانلود کنید و تموم.

    اگر خطایی هستی ارسال کنید تا بررسی کنیم.

    متاسفانه مشکل حل نشد

    یکی از ارور ها عدم تیک سبز مورد مربوط به SDK هستش :

    All essential packages installed for all installed qt versions

    وزمانی که مسیر SDK رو معرفی میکنم اخطار میده که NDK 21.3.6528147 و همچنین cmdline-tools;latest و نمیتونه پیدا کنه و باید دستی نصب کنیم که هر دو دانلود کردم و در مسیرSDK کپی کردم ولی همچنان در تب Issues این ارورها هست :

     

     error: Project ERROR: You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.

     error: Could not read qmake configuration file C:/Qt/6.1.3/android_x86/mkspecs/android-clang/qmake.conf.

    کاش میشد عکس آپلود کرد


  13. خسته نباشید مهندس

    بابت ویدئو هم بینهایت سپاسگذارم

    من qt15.15.2 و NDK23 رو دانلود کردم و نصب کردم ولی متاسفانه باز هم NDK23 رو نمیشناسه ولی همه موارد SDK تیک سبز میخوره به جز مورد آخری که نوشته:

    All essential packages installed for all installed qt versions

    و در ضمن اینکه tab مربوط به AVD خالیه و هیچ موردی زیرمجموعه اش نداره.

    جسارتا نمیشه شما SDK سیستم خودتون و که داخل ویدئو می بینیم به اشتراک بذارید؟

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


  14. سلام خسته نباشید

    میخواستم بر روی سرور که آی پی هم داریم یک Replication  راه اندازی کنم که هم بر روی سرور و هم بر روی کلاینت که قراره subscription روش تعریف بشه 

    sql server 2014 enterprise نصب هست که instance name مخصوص داره از پورت 1433 استفاده میکنه، بر روی سرور بدون هیچ مشکلی distributor و publisher 

    به صورت transactional  تعریف میشه و متعاقبا subscription بدون هیچ مشکلی روی کلاینت  config میشه ولی انتقال دیتا صورت نمیگیره و همچین اروری سمت سرور هست:

    the process could not connect to subscriber 'XXXX'

    لازم به ذکره که فولدر repData به صورت share شده و با دسترسی Evereyone /f ایجاد شده و سیستم عامل هر دو طرف ویندوز 10 هستش.

    پیشاپیش از کمکتون ممنونم.


  15. در در 20 مهر 1400 در 10:05، کامبیز اسدزاده گفته است :

    درود،
    لطفاً دقت کنید که از نسخهٔ NDK23 استفاده کنید، همچنین فعلاً از کیوت ۵.۱۵.۲ و یا ۶.۲ استفاده کنید.

    همچنین ویدیو پیکربندی اندروید می‌تونید مراجعه کنید که کامل توضیح دادم.

     

    ممنون مهندس

    لینک ویدئو مشکل داره

     


  16. با عرض سلام خسته نباشید

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

    1_در بخش tools>>Options>>Devices رو انتخاب میکنم و در تب Android به ترتیب مسیر jdk , sdk ,NDK,OPenssl رو مشخص میکنم.

    2_ولی build tools و شناسایی نمیکنه و همیچن اروری میده :

    :-1: error: Project ERROR: You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.

    :-1: error: Could not read qmake configuration file C:/Qt/6.1.3/android_x86/mkspecs/android-clang/qmake.conf.

    در حالیکه متغیر ANDROID_NDK_ROOT تعریف شده(هم در بخش envirment و هم در بخش project داخل کیوت در بخش run and build)

    ورژن کیوت(Qt creator 5.0.0) و ورژن NDK(android-ndk-r21d)


  17. با عرض سلام وخسته نباشید

    سوالی داشتم در مورد اینکه اگر ما در qml یک فرم جدید رو با استفاده از loader در زمان کلیک یک دکمه load کنیم بصورتی که

    فرم جدید با استفاده از animation بخواد نشون داده بشه یعنی مثلا از بالا شروع کنه به پایین اومدن،باید چکار کرد ؟

    من قسمت animation و در فرم دوم قرار میدم که جواب نمیده.

    پیشاپیش از راهنمایی شما بزرگواران ممنونم

     

×
×
  • جدید...