ASedJavad
دوشنبه 18 آبان 1394, 20:28 عصر
سلام تو فروم Qt این سؤال (http://barnamenevis.org/showthread.php?512009-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1%D8%AC-%DB%8C%D8%A7-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%DA%A9%D8%A7%D8%B1%D8%A7%DA%A9%D8%AA%D8%B1%D9%87%D 8%A7%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-%D9%88%DB%8C%D8%AC%D8%AA-%D9%87%D8%A7%DB%8C-Qt) رو پرسیدم که:
من از Qt نسخه 5.5 و 5.4 استفاده کردم و تو درج و نمایش کاراکترهای خاص فارسی تو ویجتهای نمایش متنش (ویجت هایی مثل QlineEdit , QTextBrowser , ...) این مشکل رو دارم که مثلا کاراکتری مثل alt + 0254 یا alt +0157 که برای درج نیمفاصله بکار میرن، یا مثلا ctrl+shift+1 که برای درج چسبیدگی مجازی یا ctrl+shift+2 که برای درج فاصله مجازی بکار میرن، در این ویجت ها درج نمیشن. البته میشه با بررسی تک تک رویدادهای صفحه کلید، این مشکل رو حل کرد که البته کار نسبتا پر دردسری است.
یک مشکل دیگه هم استفاده از کاراکتر "کشیده یا همون shift + j هست که تحت هیچ شرایطی ندیدم که این ویجت ها بتونن درست نمایش بدنش. مثلا "ســـلام" رو به این شکل نشون میدن: "س---لام"
البته درستش اینه که بگم من از pyQt استفاده کردم و نه Qt. حالا سؤال من اینه که آیا این دو مورد، مشکلِ pyQt هست یا مشکل خود Qt و اگر مشکل Qt هست، راه حل مناسبی هم داره یا نه؟
و این طور جواب دادن که:
متاسفانه کامپایلر MSVC به طور پیشفرض به خوبی از استاندارد utf-8 پشتیبانی نمیکند، پیشنهاد من اینه از MinGW استفاده کنید و یا اگر میخواهید از همان MSVC استفاده کنید از پیش پردازنده زیر استفاده کنید:
#pragma execution_character_set("utf-8")
من بارها با این مشکل مواجه شدم و با استفاده از این پیش پردازنده در کامپایلر MSVC مشکلم حل شده.
حالا سؤال اینه که معادل این راه حل، تو پایتون چی میشه؟
من از Qt نسخه 5.5 و 5.4 استفاده کردم و تو درج و نمایش کاراکترهای خاص فارسی تو ویجتهای نمایش متنش (ویجت هایی مثل QlineEdit , QTextBrowser , ...) این مشکل رو دارم که مثلا کاراکتری مثل alt + 0254 یا alt +0157 که برای درج نیمفاصله بکار میرن، یا مثلا ctrl+shift+1 که برای درج چسبیدگی مجازی یا ctrl+shift+2 که برای درج فاصله مجازی بکار میرن، در این ویجت ها درج نمیشن. البته میشه با بررسی تک تک رویدادهای صفحه کلید، این مشکل رو حل کرد که البته کار نسبتا پر دردسری است.
یک مشکل دیگه هم استفاده از کاراکتر "کشیده یا همون shift + j هست که تحت هیچ شرایطی ندیدم که این ویجت ها بتونن درست نمایش بدنش. مثلا "ســـلام" رو به این شکل نشون میدن: "س---لام"
البته درستش اینه که بگم من از pyQt استفاده کردم و نه Qt. حالا سؤال من اینه که آیا این دو مورد، مشکلِ pyQt هست یا مشکل خود Qt و اگر مشکل Qt هست، راه حل مناسبی هم داره یا نه؟
و این طور جواب دادن که:
متاسفانه کامپایلر MSVC به طور پیشفرض به خوبی از استاندارد utf-8 پشتیبانی نمیکند، پیشنهاد من اینه از MinGW استفاده کنید و یا اگر میخواهید از همان MSVC استفاده کنید از پیش پردازنده زیر استفاده کنید:
#pragma execution_character_set("utf-8")
من بارها با این مشکل مواجه شدم و با استفاده از این پیش پردازنده در کامپایلر MSVC مشکلم حل شده.
حالا سؤال اینه که معادل این راه حل، تو پایتون چی میشه؟