نمایش نتایج 1 تا 1 از 1

نام تاپیک: آموزش: اضافه کردن قابلیت درج فاصلهٔ مجازی و اتصال مجازی در QTextEdit ( در Qt 5.6 )

  1. #1

    Post آموزش: اضافه کردن قابلیت درج فاصلهٔ مجازی و اتصال مجازی در QTextEdit ( در Qt 5.6 )

    سلام
    برای اینکه ما یک QTextEdit داشته باشیم که توانایی درج نویسه فاصلهٔ مجازی ( ZWNJ ) را داشته باشد، می‌توانیم از یک کلاس به اسم MyQTextEdit استفاده کنیم به این صورت که کلاس MyQTextEdit از کلاس QTextEdit ارث‌بری بکند تا ویژگی‌های کلاس QTextEdit به کلاس MyQTextEdit منتقل شود. حالا ما یک کلاس به اسم MyQTextEdit داریم که کاملاً شبیه به QTextEdit هستش. اکنون درون کلاس MyQTextEdit یک تابع بسازید و قابلیت درج فاصلهٔ مجازی را به آن اضافه کنید. بعداً در برنامه اصلی‌تان می‌توانید بجای استفاده مستقیم از QTextEdit از MyQTextEdit استفاده کنید که دارای قابلیت درج نویسهٔ فاصلهٔ مجازی نیز هست.

    #include <QApplication>
    #include <QKeyEvent>
    #include <QTextEdit>


    class MyQTextEdit : public QTextEdit
    {
    public:
    void keyPressEvent(QKeyEvent *e)
    {
    QTextEdit::keyPressEvent(e);
    if( e->key() == 0x200c )
    {
    insertPlainText( QChar(0x200C) );
    }
    }
    };


    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);


    MyQTextEdit *edit = new MyQTextEdit();
    edit->show();


    return a.exec();
    }


    منبع: https://stackoverflow.com/questions/...qt-application

    نمونه‌ای از خروجی در زیر نمایش داده شده:

    Screenshot from 2016-10-02 16-55-46.png

    اگر می‌خواهید کلاس MyQTextEdit شما هم از فاصلهٔ مجازی ( ZWNJ ) و هم از اتصال مجازی ( ZWJ ) پشتیبانی کند از کد زیر استفاده کنید:

    #include <QApplication>
    #include <QKeyEvent>
    #include <QTextEdit>


    class MyQTextEdit : public QTextEdit
    {
    public:
    void keyPressEvent(QKeyEvent *e)
    {
    QTextEdit::keyPressEvent(e);
    if( e->key() == 0x200c )
    {
    insertPlainText( QChar(0x200C) );
    }
    else if ( e->key() == 0x200D )
    {
    insertPlainText( QChar(0x200D ) );
    }
    }
    };


    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);


    MyQTextEdit *edit = new MyQTextEdit();
    edit->setFont( QFont( "Sans Regular", 18));
    edit->show();


    return a.exec();
    }


    این هم یک نمونه از اجرا: ( با دستور زیر اندازه قلم را افزایش دادم تا در عکس زیر راحت‌تر دیده شود )

    edit->setFont( QFont( "Sans Regular", 18));


    Screenshot from 2016-10-03 11-46-46.png
    آخرین ویرایش به وسیله علی بهمنی جلالی : دوشنبه 12 مهر 1395 در 11:26 صبح

تاپیک های مشابه

  1. اضافه کردن قابلیت tapatalk برای انجمن در ios
    نوشته شده توسط haghft در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 3
    آخرین پست: چهارشنبه 20 شهریور 1392, 10:56 صبح
  2. پاسخ: 0
    آخرین پست: پنج شنبه 05 خرداد 1390, 06:13 صبح
  3. سوال: اضافه کردن قابلیت ارسال اس ام اس به سایت
    نوشته شده توسط phpweb در بخش PHP
    پاسخ: 4
    آخرین پست: یک شنبه 22 اسفند 1389, 22:58 عصر
  4. اضافه کردن قابلیت توسعه توسط Visual studio for application
    نوشته شده توسط GISMan در بخش VB.NET
    پاسخ: 0
    آخرین پست: یک شنبه 26 شهریور 1385, 06:56 صبح

برچسب های این تاپیک

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

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