ترسیم متن فارسی DrawText



  • p{direction:rtl; text-align:right;font-family:tahoma}. من میخوام با استفاده از تابع DrawText از QPainter یک متن فارسی رو ترسیم کنم اما بجای متن مورد نظر چرت و پرت تحویل میده :|

    p{direction:rtl; text-align:right;font-family:tahoma}. قبل از پی بردن به این مشکل سوالم این بود که چطور میشه اعداد فارسی رو ترسیم کرد؟



  • p{direction:rtl; text-align:right}. اول این که فایلی .cpp كه متن فارسی رو توش منوسید رو به یونیکد یا utf-8 تبدیل کنید و سپس خطوط زیر رو به main.cpp اضافه كنيد.
    @
    #include <qtextcodec.h>
    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
    @

    p{direction:rtl; text-align:right}. تو فایل پروژت هم این دو خط رو اضافه کن

    @CODECFORSRC = UTF-8
    CODECFORTR = UTF-8
    @



  • p{direction:rtl; text-align:right;font-family:tahoma}. خیلی ممنون حل شد :)
    مرحله اول رو انجام دادم و فایل رو هم چک کردم utf-8 بود.
    قسمت دوم رو انجام ندادم. کارش چیه؟
    متن هم باید داخل tr() باشه!

    p{direction:rtl; text-align:right;font-family:tahoma}. خب برای ترسیم اعداد فارسی هم یک راه پیدا کردم. اگر راه بهتری میدونید بگید.
    با استفاده از Character Map ویندوز، کاراکتر فارسی عدد مورد نظر رو کپی کرده و در برنامه قرار دادم. البته قبل از اینکه مراحل بالا رو برای امکان ترسیم فارسی انجام بدم این ها هم درست نمایش داده نمیشدن!



  • p{direction:rtl; text-align:right}. برای اطلاع دادن به کامپایلرqmakeهست که فایل ها و متن ها به صورت utf-8 ذخیره و بازیابی و استفاده بشن.
    موفق باشید



  • p{direction:rtl; text-align:right}. براي اعداد بنظرم از فونت استفاده کنید یعنی فونتی رو برای برنامتون لود کنید که اعداد فارسی رو هم داشته باشه .در این صورت مشکلتون بنظرم حل بشه



  • [quote author="nice_2000" date="1357415653"]p{direction:rtl; text-align:right;font-family:tahoma}. خیلی ممنون حل شد :)
    مرحله اول رو انجام دادم و فایل رو هم چک کردم utf-8 بود.
    قسمت دوم رو انجام ندادم. کارش چیه؟
    متن هم باید داخل tr() باشه!

    p{direction:rtl; text-align:right;font-family:tahoma}. خب برای ترسیم اعداد فارسی هم یک راه پیدا کردم. اگر راه بهتری میدونید بگید.
    با استفاده از Character Map ویندوز، کاراکتر فارسی عدد مورد نظر رو کپی کرده و در برنامه قرار دادم. البته قبل از اینکه مراحل بالا رو برای امکان ترسیم فارسی انجام بدم این ها هم درست نمایش داده نمیشدن![/quote]

    p{direction:rtl; text-align:right;font-family:tahoma}. از کی‌بورد استاندارد فارسی استفاده کنید. کی‌بورد من ۰۱۲۳۴۵۶۷۸۹ می‌نویسه همچنین 0123456789 . به‌جای ك می‌نویسه ک و به‌جای ي می‌نویسه ی.



  • p{direction:rtl; text-align:right;font-family:tahoma}. از راهنماییتون متشکرم
    اما این مورد من یک مشکلی داره. تعداد زیادی عدد باید چاپ بشه که امکان تایپ تک تک اونها امکان پذیر نیست. برنامه باید طوری طراحی بشه که خودش اعداد رو به معادل فارسیشون تبدیل و چاپ کنه.
    فکر می کنم به تابع QChar مربوط بشه
    با تنظیم فونت فارسی مشکل حل میشه اما ممکنه روی دستگاه های مختلف ایجاد مشکل کنه. نمیخوام به فونت ها وابسطه باشه.



  • [quote author="nice_2000" date="1357418541"]p{direction:rtl; text-align:right;font-family:tahoma}. از راهنماییتون متشکرم
    اما این مورد من یک مشکلی داره. تعداد زیادی عدد باید چاپ بشه که امکان تایپ تک تک اونها امکان پذیر نیست. برنامه باید طوری طراحی بشه که خودش اعداد رو به معادل فارسیشون تبدیل و چاپ کنه.
    فکر می کنم به تابع QChar مربوط بشه
    با تنظیم فونت فارسی مشکل حل میشه اما ممکنه روی دستگاه های مختلف ایجاد مشکل کنه. نمیخوام به فونت ها وابسطه باشه.[/quote]

    p{direction:rtl; text-align:right;font-family:tahoma}. از کی‌بورد استاندارد فارسی استفاده کن! و یک واسط بنویس که اعداد تولید شده رو به معادل‌های یونیکد مدرن تبدیل کنه.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.