‏نمایش پست‌ها با برچسب Qt. نمایش همه پست‌ها
‏نمایش پست‌ها با برچسب Qt. نمایش همه پست‌ها

۱۳۹۰/۱۲/۰۷

نوشته شده توسط Reza Alizadeh Majd
دسته بندي: , ,
در حالت عادی وقتی فرممون رو فارسی میکنیم و layout اون رو right to left میزاریم منو ها right to left نمیشن.

با یه جستجو تو اینترنت به این جواب رسیدم که با استفاده از دستور زیر میتونیم منو هامون رو هم بصورت right to left نمایش بدیم:

QApplication::setLayoutDirection(Qt::RightToLeft);



۱۳۹۰/۱۱/۱۹

نوشته شده توسط Reza Alizadeh Majd
دسته بندي: , ,
در حالت عادی وقتی بخوایم یه سری تگ HTML رو توی یه QString ذخیره کنیم، موقع نمایش اون توی QLabel تگ های HTML شناخته نشده و خود تگ ها رو هم جزو متن میبینیم. مثلا اگه  بخوایم تگ زیر رو نمایش بدیم :
Hello World
وقتی از کد زیر استفاده کنیم :
Hello <font color=Blue>World</font>
بصورت زیر نمایش داده میشه :
Hello <font color=Red>World</font>
حالا اگه بخوایم این متن درست نشون داده بشه کافیه که در ابتدای متنمون به QString بفهمونیم که داخلش تگ های HTML وجود داره، برای این منظور می تونیم از متا تگ زیر استفاده کنیم:
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">
که باعث میشه تگ های HTML به درستی نمایش داده بشه. به عنوان مثال :
QString str = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"Hello <font color=Red>devildarkness</font>";
label->setText(str);
آپدیت 1390/11/23: بجای روش فوق میتونیم از متد setTextFormat بصورت زیر استفاده کنیم :
label->setTextFormat(Qt::RichText);


---

۱۳۹۰/۱۰/۲۹

نوشته شده توسط Reza Alizadeh Majd
دسته بندي: , ,

از امروز میخوام راجع به پلتفرم جدیدی که برنامه نویسیش رو شروع کردم بنویسم و چیزایی رو که یاد میگیرم رو اینجا با بقیه به اشتراک بزارم. امیدوارم که این تجربیات هرچند ناچیز یه روزی به درد یه نفر بخوره.
یه مشکلی رو که تا الان با نوشتن متن های فارسی تو Qt داشتم و امروز حلش کردم این بود که وقتی میخواستم تو Source برنامم یه رشته متنی فارسی (یونیکد) رو استفاده کنم به مشکل بر میخوردم و کاراکتر ها اشتباه نشون داده میشد. واسه رفع این مشکل یکم با گوگل مشورت کردم و راه حل رو پیدا کردم :

برای استفاده از کاراکتر های None ASCII توی کد میتونیم از QString::fromUtf8 به شکل زیر استفاده کنیم:
QString foo = QString::fromUtf8( "funny characters" );
اینجوری ابتدا رشته به یونیکد تبدیل میشه و بعد ذخیره میشه.