صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 57 از 57

نام تاپیک: آموزش کیوت به زبان ساده

  1. #41
    کاربر دائمی آواتار Hossenbor
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    پارس
    پست
    429

    نقل قول: آموزش کیوت به زبان ساده

    سلام خدمت دوستان عزیز اینو پیدا کردم دلم نیومدم که واسه شما نزارم http://www.qtrac.eu/C++‎-GUI-Programm...t-4-1st-ed.zip
    در ضمن یکی از استادا گفت دلم نمیاد پست بزنم منم در جوابش میگم اگه ما اوپن سورسیا هوای همو داشته نباشیم هیچکس هوامونو نداره

  2. #42

    نقل قول: آموزش کیوت به زبان ساده

    سلام من تازه با کیوت اشنا شدم و خیلی باهاش کلنجار رفتم وازش لذت بردم از اموزشاتون خیلی ممنون ولی من که تازه کارم خیلی کم ازش فهمیدم .هدف من نوشتن یه برنامه هست که به گوشه همه خورده مدیریت یک کتابخانه به صورت ساده میخواستم بدونم از کدوم قسمت کیوت بیشتر باید استفاده کنم ومهارت بیشتری داشته باشم تا بتونم پروژه ام را هرچه زودتر انجام بدم اگر هر راهنمایی که میتونید بکنید ممنون

  3. #43

    نقل قول: آموزش کیوت به زبان ساده

    نقل قول نوشته شده توسط .:saeed:. مشاهده تاپیک
    با سلام
    شرمنده از اینکه دیر شد.
    چون دیدم از مقدمه سی پلاس پلاس زیاد استقبال نشد گفتم حتما دوستان در این مورد مشکلی ندارند . خوب اونو skip کردم و رفتم سر اصل مطلب . قسمت بعدی مقدماتی از کیوتی و محیط ها و نرم افزارهای همراه کیوتی به صورت کلی معرفی شدند . بررسی و آموزش هر کدام ، ان شاءالله در ادامه مباحث خواهد آمد
    دانلود قسمت سوم از آموزش کیوتی ( مقدمات و محیط های همراه )
    موفق باشید.
    خیلی قشنگ پیش رفته بودید. حیف شد که skip کردید. من کتاب آقای دایتل رو خوندم تا آخر کلاس ها اما شما خیلی قشنگ ترجمه کرده بودید ای کاش به همان سیاق ادامه می‎دادید. برای ما کلاس اول های برنامه نویسی خیلی خوب بود به هر حال اگه ممکنه وسط این معرکه وقفه ای ایجاد کنید یا اینکه همزمان اون قسمت هم ادامه بدید.
    با تشکر

  4. #44
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: آموزش کیوت به زبان ساده

    سلام
    خیلی ممنون از نظرتون . بله حتما ادامه خواهد داشت . شاید از این هفته و شاید از هفته بعد .

  5. #45
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: آموزش کیوت به زبان ساده

    سلام در بخش بعدی برنامه نویسی کیوتی میریم سراغ مطالب یکم پیشرفته تر . از Event ها شروع میکنیم

    Events رخدادها
    رخدادها یا Event ها چه هستند ؟ سوال مهمی است . برای اینکه بیشتر بفهمیم که رخداد ها چه چیز هایی هستند اجازه بدید بیشتر در مورد اونا بدونیم. البته از دیدگاه ویندوزی !
    ببینید برنامه های Consoleای که مینوشتیم راهی نداشتیم که با سیستم عامل ارتباط برقرار کنیم و به همین دلیل مثلا تابعی مثل scanf را برای گرفتن ورودی از کاربر صدا میزدیم. ولی در دنیای سیستم عامل های جدید این طور نیست. شما به واقعیت نزدیک تر میشوید . به چه صورت ؟ بذارید یه مثال بزنم . بچه ها رو دیدید که توی یه مسافرت طولانی آدم رو کلافه میکنن که رسیدیم ، رسیدیم؟ رسیدیم ؟ پس کی میرسیم؟ رسیدیم؟
    وای آدم کلافه میشه و با صدای بلند میگیم نه عزیزم وقتی رسیدیم بهت میگم. صدا زدن تابعی مثل scanf مثل بچه ای میبینه که مرتب بگه رسیدیم، رسیدیم؟ بله شاید کاربر ساعت ها دلش نخواد یه مقدار برای برنامه ما ارسال کنه و تابع منتظر ورودی است. ولی در سیستم عامل ویندوز رویه یکمی فرق داره . ویندوز به شما میگه این قدر نگو ورودی ورودی ، هر وقت اومد بهت خبر میدم ! بله ویندوز هر وقت که خبری بشه بهتون پیام میده و خبرتون میکنه از یه واقعه (Event) .
    پس یه خبرایی داره میشه ! ویندوز میخواد با شما ارتباط برقرار کنه و این ارتباط از طریق پیام هایی است که برای شما میفرسته . بذارید یکم بیشتر بدونیم . یعنی چی پیام میده به ما ؟ سوال خیلی خوبیه .
    در برنامه های ویندوزی ما در برنامه مون یه تابعی به نام Window Procedure باید تعریف کنیم که شاهراه ارتباطی ما با ویندوزه. هر وقت ویندوز دلش خواست به ما پیام بده این تابع رو صدا میزنه و یه خبری به ما میده . مثلا میگه که کلید فلان زده شد. یا ماوس روی فلان نقطه شما زده شد . یامیگه که باباجون ! یه پنجره اومد روی شما و رفت کنار باید خودتو دوباره طراحی کنی ! از این پیاما میده . خوب برنامه ای که توی کیوتی ( شونصد بار دیگه هم که بگین کیوت درست تر تره ما با کیوتی بیشتر حال میکنی ام ) مینویسین ( البته توی ویندوز ) به همین صورته . یعنی ویندوز برای شما پیام میده . ای بابا دروغ نگو من که تا حالا از ویندوز پیامی دریافت نکردم !
    درسته ! اصن کیوتی اومده همین کارو بکنه . چکار ؟ بعضی از چیزا رو از دید شما مخفی کنه و یه راه راحتتر براتون ایجاد کنه . مثلا یکیش همین پردازش رخداد ها ( پیام ها ) است. زمانیکه ویندوز پیام میده براتون کیوتی یکم ملایم تر ! خبرتون میکنه تا هر کاری که میخواید بکنید.
    بذارید بحث رو باحال ترش کنیم ! سیگنال ها به نظرتون چی هستند ؟ اونا هیچی نیستند جز پیام ها که به شیوه خاصی اعلان میشند! یعنی چی ؟ ببینید قرار شد وقتی روی منِ دکمه کلیک شد ویندوز با پیامی من رو خبر کنه . خب من ِ دکمه هم شما رو با سیگنالی خبر میکنم. پس بذارید جمع بندی کنم : برخی از پیام های مهم به صورت سیگنال در اختیار ما قرار داده میشند تا راحتر تر باشیم . و برخی هم اگه قراره باهاشون کاری کنیم باید بریم سراغ بحث پردازش پیام ها ( رخداد) (Event Processing) .حالا یه سوال؟ میشه من از سیگنال یه پیام استفاده نکنم و بجاش از پیام به صورت مستقیم استفاده کنم؟ سوال خوبی بود . به صورت مستقیم مستقیم که نه . ولی میتونید از راه یکم مستقیم تر به نام پردازش رخداد ها استفاده کنید. مثلا میدونیم که دکمه سینگال clicked داره . در عین حال ما میتونیم رخداد کلیک شدن روی یه دکمه را خودمون تعریف کنیم که چه اتفاقی در جواب اون رخداد بیفته.
    پس به اینجا رسیدیم که در ویندوز وقتی کاربر یه کاری کرد، ویندوز از طریق پیام به ما خبر میده. ما هم شاید بخواهیم در جواب اون پیام یه کاری انجام بدیم . انجام اینکارا توی کیوتی Event Handling یا Event Processing نام داره. مثلا تاحالا شده از خودتون بپرسید که چطور میشه مثلا وقتی روی یه ویدجت خالی کلیک میشه یه اتفاقی بیفته ؟ نپرسیدین ؟ واقعا ؟
    قانون زیر رو حیفم اومد ترجمه کنم : As a rule, signals are useful when using a widget, whereas events are useful when implementing a widget.برای مثال وقتی داریم از دکمه استفاده میکنیم راحت تر هستیم که از سیگنال استفاده کنیم تا اینکه خودمون رو درگیر پیامهای ماوس کنیم.
    زمانیکه اتفاقی می افته برای یه ویدجت که ویندوز براش پیام میفرسته مثلا فرض کنیم روی یه ویدجت کلیک میشه ، کارایی که قراره در جواب اون اتفاق انجام بشه توی یه تابعی قرار میگیره که با کلمه Event تموم میشه . مثلا چی ؟ فرض کنید روی ویدجت ما کلیک میشه در اینجا ما تابعی خواهیم داشت به نام mousePressEvent که هر دستوری داخلش بنویسیم برای ما اجرا میشه( البته هر مرتبه که روی ویدجت ما کلیک شد. ) این تابعها کجا بودند ؟ این تابع ها به صورت مجازی (virtual) در کلاس QWidget قرار دارند و ما با باز تعریف آنها (Re Implement) باعث میشیم که تابع ما به جای تابع اصلی صدا زده بشه. برخی مواقع هم تابعی که توی کلاس هستش کاری انجام نمیده . مثلا mousePressEvent داخل QWidget هیچ کاری انجام نمیده. از کجا فهمیدیم؟ از اینجا که با کلیک کردن روی یه ویدجت هیچ اتفاقی نمی افته. ولی اگه من بیام و این تابع رو باز تعریف کنم و توش یه دستوری بنویسم ، از این به بعد هر بار که من روی ویدجتم کلیک میکنم یه اتفاقی خواهد افتاد.
    بذارید یه مثال ساده بزنیم. یه کلاس به برنامه تون اضافه کنید که از QWidget ارث برده باشه. حالا به فایل header خط زیر را اضافه کنید:

    protected:
    void mousePressEvent(QMouseEvent *);


    void Widget::mousePressEvent(QMouseEvent *)
    {
    QMessageBox::information( this, "Clicked", "I'm clicked!");
    }

    حالا اون رو به صورت زیر تعریف کنید :
    حالا یه شی از این کلاس جدیدتون بسازید و با تابع show اونو نمایش بدین و بعد روی ویدجتتون کلیک کنید .
    حالا به عنوان تمرین یه کلاس از کلاس QPushButton ارث ببرین و تابع mousePressEvent اونو خودتون باز تعریف کنید ببینید چی میشه و چطور میشه حلش کرد ؟ ( سوال مهمی بودا)
    فعلا...

  6. #46
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: آموزش کیوت به زبان ساده

    مدیریت پیام ها ( رخدادها ) Events - قسمت دوم
    در این قسمت پیام paintEvent گفته خواهد شد که یکی از رخداد های مهم است . در ضمن در این قسمت یه لاین ادیتی خواهیم ساخت که یه تصویر روش میاد و با کلیک شدن اون تصویر ( ضربدر ) متن داخلش پاک خواهد شد . ( مثلا فیلترها توی Designer ) . چون این قسمت خیلی کد داشت و وضعیت کد نویسی در برنامه نویس خیلی خوب نیست به صورت pdf در آوردم
    برای دانلود اینجا را کلیک کنید.

  7. #47
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: آموزش کیوت به زبان ساده

    موضوع : Events in Qt Part C - Event Filtering
    مثال عملی : یه ویدجت با سه لاین ادیت در داخل اون که فشردن کلید space در اونا باعث انتقال Focus به لاین ادیت بعدی میشه .

    با سلام . فکر کنم کسی حوصله دانلود کردن نداره خوب همین جا میذارم راحت باشید.

    یکی از ویژگی های بارز و مهم کیوتی اینه که شما میتونید یه شی از جنس [1] QObject رو مامور کنید پیام های یه QObject دیگه رو بگیره، حتی بدون اینکه اون کسی که پیام ها مالش بود متوجه بشه . بذارید توضیح بدم. فرض کنید شما می خواهید یه QLineEdit بسازید (منظورم اینه که ازش ارث ببرید و بعدش یه سری چیز بهش اضافه کنید) که وقتی روش کلیک شد یه کاری انجام بشه . همون طور که میدونید QLineEdit سیگنالی به نام clicked نداره بلکه برای انجام این کار باید mousePressEvent این QLineEdit جدیدمون رو باز نویسی کنیم.
    ولی یه راه دیگه ای هم داریم. به پدر این لاین ادیت که مثلا یه QDialog هستش بگیم که اگه پیامی برای این لاین ادیت اومد خودت جواب بده ، این لاین ادیت بچه اس نمیتونه جواب بده ! به این عملیات میگیم Event Filtering . یعنی یه کسی بشه مسئول یکی دیگه . در این صورت تمام پیام های فرضا QLineEdit ما برای QDialog ما ارسال میشه . خوب یه مشکلی هست . به نظرتون چه مشکلی ؟
    من ( منظور از من همون QDialog )که قصد نداشتم تمام پیام ها رو خودم بررسی کنم ، من فقط یه پیام رو میخواستم از QLineEdit پردازش کنم و بقیه رو بذارم بر عهده خودش . مثلا وقتی پیام[2] Paint برای من ارسال میشه که من نمیتونم لاین ادیت رو نقاشی کنم . خودش باید نقاشی کنه . پس چکار کنیم. خوب خیلی ساده است دیگه . من هرچی رو دوست دارم خودم(QDialog) پردازش میکنم و بقیه رو خودش (QLineEdit) پردازش کنه . خیلی خوب شد این طوری .
    خوب بذارید یه مثال عملی انجام بدیم تا متوجه بشیم . آقا من میخوام یه سری QLineEdit روی QDialog ام داشته باشم که وقتی در یکی از QLineEdit ها کلید Space رو زدم Focus[3] به QLineEdit بعدی برسه . یه راه حل اینه که من کد زیر رو بنویسم


    void MyLineEdit::keyPressEvent(QKeyEvent *event)
    {
    if (event->key() == Qt::Key_Space) {
    focusNextChild();
    } else {
    QLineEdit::keyPressEvent(event);
    }
    }

    یعنی بیام و پیام صفحه کلید ( پیام فشرده شدن یه کلید ) که همون keyPressEvent هست رو در مورد QLineEdit باز نویسی کنم و توش بنویسم اگه کلید space زده شد برو سراغ شی بعدی رو دیالوگ ما که باید input focus رو دریافت کنه اگه غیر این بود به کلاس پایه QLineEdit میگم آقا کار خودتو بکن . کار خودش چی بود هیچی این کلید فشرده شده رو پردازش کنه و اگه قرار کاراکتری نمایش داده بشه نمایش بده. اگه این خط رو نذارید دیگه لاین ادیت چیزی نمایش نمیده.
    دوتام مشکل داره این کار . یکیش اینه که ما حوصله نداریم واسه این یه کارساده یه کلاس جدید تعریف کنیم. دوم اینکه حالا اگه قرار شد QComboBox هم توی این فرم قرار بگیره دیگه هیچی ! بازم باید یه کلاس جدید برای اون تعریف کنیم و همین کارا رو برای keyPressEvent اش انجام بدیم .
    ولی این کار به راحتی با استفاده از event filtering قابل انجامه. خوب انجام این کار دو مرحل داره:
    1. باید به شی ای که میخوایم پیام ها شو بدزدیم بگیم که ما قصد انجام این کارو داریم . این کار با استفاده از تابع installEventFilter قابل انجامه. پس پیام های A از این به بعد برای B ارسال میشه.
    2. B باید پیام ها رو در تابع eventFilter پردازش کنه.
    در ادامه یه مثال عملی از این موضوع خواهیم دید.
    کلاسی از جنس QWidget به صورت زیر تعریف میکنیم :

    #ifndef WIDGET_H
    #define WIDGET_H

    #include <QWidget>
    class QLineEdit;
    namespace Ui {
    class Widget;
    }

    class Widget : public QWidget
    {
    Q_OBJECT

    public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

    private:
    Ui::Widget *ui;
    QLineEdit *_led_a, *_led_b, *_led_c;
    protected:
    bool eventFilter(QObject *, QEvent *);
    };

    #endif // WIDGET_H

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

    Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
    {
    ui->setupUi(this);
    QVBoxLayout *hlay = new QVBoxLayout( this );
    _led_a = new QLineEdit;
    _led_a->installEventFilter(this);
    hlay->addWidget(_led_a);
    _led_b = new QLineEdit;
    _led_b->installEventFilter(this);
    hlay->addWidget(_led_b);
    _led_c = new QLineEdit;
    _led_c->installEventFilter(this);
    hlay->addWidget(_led_c);
    }

    همونطور که میبیند برای هر سه LineEdit مون با استفاده از تابع installEventFilter شی کلاس ای از جنس QWidget که همون widget (نام کلاس ارث برده شده ) رو مسئول پیام های این سه لاین ادیت قرار دادیم.

    bool Widget::eventFilter(QObject *target, QEvent *event)
    {
    if (target == _led_a || target == _led_b
    || target == _led_c ) {
    if (event->type() == QEvent::KeyPress) {
    QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
    if (keyEvent->key() == Qt::Key_Space) {
    focusNextChild();
    return true;
    }
    }
    }
    return QWidget::eventFilter(target, event);
    }

    برای تابع eventFilter رو مقدار ارسال خواهد شد. یکی اینکه پیام در اصل ماله کیه . دوم اصلا پیامه چیه ؟ ما اول میام و چک میکنیم که آیا پیام ارسالی مال یکی از QLineEdit هاست یا نه . و بعدش میام میبینم که آیا پیام ارسالی اصلا از جنس پیام صفحه کلیدی است یا نه . چون قرار شد همه پیام ها برای این تابع ارسال بشه. خوب پس پیام از جنس صفحه کلیدی یعنی از جنس شی ای از کلاس QKeyEvent ( کلاسی است که اطلاعات تکملی در مورد پیام صفحه کلید را دارد مثلا اینکه کدام کلید فشرده شده ) ولی پارامتر ارسالی از جنس QEvent هستش که پایه تمام کلاس های Event مث QMoseEvent و QKeyEvent هستش . همون قاعده چند ریختی دیگه . خوب با یه Cast ساده یه شی از جنس QKeyEvent به دست میاریم و بعدش میبینیم که آیا کلید فشرده شده space هست یا نه اگه هست که ما پیام را پردازش میکنیم و مقدار true برمیگردانیم که به کیوتی بگیم آقا ما این پیام رو پردازش کردیم .اگه ما مقدار false بر میگردوندیم کیوتی تصور میکرد که پیام پردازش نشده و به شی QLineEdit مربوطه میفرستادش پیام رو.
    خوب اینم از این مثال و از این آموزش

    پاورقی

    [1]
    منظور از یه شی از جنس QObject شی است که یا خودش از QObject ساخته شده باشد یا به صورت مستقیم یا غیر مستقیم از QObject به ارث برده شده باشد

    [2]
    دقیقا پیامی با نام WM_PAINT برای Window procedure ما ارسال میشه.
    [3]
    ببینید نکته ای که هست اینه : برنامه ها از یه سری Widget درست شدنددیگه مثلا دکمه و لاین ادیت و اینا . پیام های صفحه کلید در آن واحد فقط واسه یکی میشه فرستاده بشه . مثلا شما میتونید در یه لحظه واسه دوتا Note Pad تایپ کنید نمیشه که . حالا این ورودی های صفحه کلید ( پیام های صفحه کلید ) واسه کی فرستاده میشه ؟ واسه کسی که Input Focus داشته باشه . چه کسی Input Focus رو داره . مثلا در مورد LineEdit زمانی که Caret در داخلش چشمک میزنه یعنی Input Focus داره.

    پیشنهاد : محض اطلاع خواستم بگم که IP Editor ویندوز رو تا حالا دیدین !

  8. #48
    کاربر دائمی آواتار .:saeed:.
    تاریخ عضویت
    مهر 1387
    محل زندگی
    تهران
    پست
    207

    نقل قول: آموزش کیوت به زبان ساده

    دانلود فایل pdf و فایل های پروژه این قسمت از اینجا

  9. #49

    نقل قول: آموزش کیوت به زبان ساده

    نقل قول نوشته شده توسط Hossenbor مشاهده تاپیک
    سلام خدمت دوستان عزیز اینو پیدا کردم دلم نیومدم که واسه شما نزارم http://www.qtrac.eu/C++‎-GUI-Programm...t-4-1st-ed.zip
    نسخه ی الکترونیکی ویرایش دوم همین کتاب هم موجوده.
    نمیدونم درج لینک اونا در اینجا مجاز هست یا نه. در هر صورت اگر لینکشو خواستید با پیام خصوصی بهم اطلاع بدید

  10. #50
    کاربر دائمی آواتار gbg
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    سن
    46
    پست
    691

    نقل قول: آموزش کیوت به زبان ساده

    بعضی از فایل های 4shared.com دانلود نمیشه چون ف..ر شدن

  11. #51

    نقل قول: آموزش کیوت به زبان ساده

    اگر فرصت شد همه آموزشی ها را به صورت یکجا توی یک فایل PDF قرار دهید ترجیحا روی mediafire - بزارید ممنون

  12. #52
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1391
    سن
    29
    پست
    596

    نقل قول: آموزش کیوت به زبان ساده

    برای یادگیری QT لازمه حتما C++‎ بلد باشم؟ یا اگر به c هم مسلط باشم میشه؟

  13. #53

    نقل قول: آموزش کیوت به زبان ساده


  14. #54

    نقل قول: آموزش کیوت به زبان ساده

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

    با تشکر

  15. #55
    مدیر بخش آواتار rubiks.kde
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    1,537

    نقل قول: آموزش کیوت به زبان ساده

    Qt یک چهارچوب توسعه نرم افزار میان سکویی (Cross Platform ) که معمولا برای توسعه نرم افزارهای واسط گرافیکی ( GUI ) استفاده می شود. Qt بسیار کاملتر از مجموعه ابزارهای دیگر مانند GTK است که تنها مجموعه ای از اشیای گرافیکی قابل استفاده بر روی پنجره ها هستند. Qt از زبان سی پلاس پلاس استفاده می کند ولی تبدیل آن بر روی اکثر
    زبان های برنامه نویسی تولید شده است. همچنین اکثر ویژگیهای کیوت از Preprocessor موجود در زبان سی استفاده می کنند و برخی از ویژگیهای خاص آن ( مانند پنجره ساز و چندزبانی ) از یک پیش پردازنده که مخصوص خود کیوت است و کد آنرا به کد سی تبدیل می کند، استفاده می کنند.

    مانند اکثر چهارچوب های برنامه نویسی واسط گرافیکی ( از جمله , Microsoft Visual Studio Apple Xcode , ... ) برنامه کیوت از یک حلقه رخداد اصلی ( Main Event Loop ) استفاده می کند. به دلیل متن باز بودن کیوت و رشد آن در طی سالهای اخیر، این حلقه بسیار بهینه پیاد ه سازی شده و از مشابه خود در سیستم های مذکور بسیار بهتر عمل می کند. مانند اکثر محیط های برنامه سازی گرافیکی، کیوت نیز از برنامه نویسی رخداد محور ( Event-Driven Programming ) پشتیبانی می کنند ولی الگوی مشاهدگر ( Observer Pattern ) که یکی از الگوهای بسیار عالی و موفق در مهندسی نرم افزار است امکانات و افق های بسیاری را به روی برنامه نویس می گشاید.

  16. #56

    نقل قول: آموزش کیوت به زبان ساده

    نقل قول نوشته شده توسط MOJTABAATEFEH مشاهده تاپیک
    دوست عزیز ممنون بابت کار قشنگتون اگر ممکنه لطفا یک اطلاعاتی به صورت فارسی راجع به این زبان و مزایا و معایبش بدین

    با تشکر
    منظورتون از زبان Qt که نیست؟

  17. #57

    نقل قول: آموزش کیوت به زبان ساده

    هیچ فایلی نیست

صفحه 2 از 2 اولاول 12

قوانین ایجاد تاپیک در تالار

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