عمار هبه نشر 8 نوفمبر 2023 أرسل تقرير نشر 8 نوفمبر 2023 (معدل) لدي برنامج لكتابة نص.. لكن عند كتابة النص بالعربية تكون الحروف مقطعه ومقلوبه ..اليكم الكود ...ثم اروني الحل للمشكلة.. وكل حبي وتقديري لكم from tkinter import * import pyarabic.araby as araby from awesometkinter.bidirender import add_bidi_support, render_text import arabic_reshaper from bidi.algorithm import get_display # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2,width=37,height=10) address.pack() add_bidi_support(address) #address root.mainloop() تم التعديل في 8 نوفمبر 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 2 اقتباس
0 Mustafa Suleiman نشر 8 نوفمبر 2023 أرسل تقرير نشر 8 نوفمبر 2023 المشكلة في الكود هي أنك لم تقم بتحويل النص العربي إلى صيغة bidi قبل عرضه في عنصر Text وإحدى الطرق لفعل ذلك هو استخدام مكتبة PyArabic كالتالي: from tkinter import * import pyarabic.araby as araby # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2, width=37, height=10) address.pack() # Convert Arabic text to bidi text = "مرحبا بكم في موقعنا" bidi_text = araby.to_bidi(text) # Display bidi text address.insert(END, bidi_text) add_bidi_support(address) #address root.mainloop() أو من الممكن الإعتماد على مكتبة أخرى مثل arabic_reshaper كالتالي: from tkinter import * import arabic_reshaper # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2, width=37, height=10) address.pack() # Convert Arabic text to bidi text = "مرحبا بكم في موقعنا" bidi_text = arabic_reshaper.reshape(text) # Display bidi text address.insert(END, bidi_text) add_bidi_support(address) #address root.mainloop() 1 اقتباس
0 عمار هبه نشر 8 نوفمبر 2023 الكاتب أرسل تقرير نشر 8 نوفمبر 2023 بتاريخ 5 دقائق مضت قال Mustafa Suleiman: المشكلة في الكود هي أنك لم تقم بتحويل النص العربي إلى صيغة bidi قبل عرضه في عنصر Text وإحدى الطرق لفعل ذلك هو استخدام مكتبة PyArabic كالتالي: from tkinter import * import pyarabic.araby as araby # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2, width=37, height=10) address.pack() # Convert Arabic text to bidi text = "مرحبا بكم في موقعنا" bidi_text = araby.to_bidi(text) # Display bidi text address.insert(END, bidi_text) add_bidi_support(address) #address root.mainloop() أو من الممكن الإعتماد على مكتبة أخرى مثل arabic_reshaper كالتالي: from tkinter import * import arabic_reshaper # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2, width=37, height=10) address.pack() # Convert Arabic text to bidi text = "مرحبا بكم في موقعنا" bidi_text = arabic_reshaper.reshape(text) # Display bidi text address.insert(END, bidi_text) add_bidi_support(address) #address root.mainloop() لم تفلح اقتباس
0 Chihab Hedidi نشر 8 نوفمبر 2023 أرسل تقرير نشر 8 نوفمبر 2023 واجهت هذه المشكلة من قبل، الحلول تختلف من كمبيوتر لآخر، أحد الحلول التي اشتغلت معي هي تغيير طريقة التشفير لواحدة تقبل اللغة العربية و المستخدمة حاليا هي UTF-8: يمكنك تجربة الكود التالي مع التغيير البسيط الذي أحدثته لأنه اشتغل معي بهذه الطريقة: # -*- coding: UTF-8 -*- from tkinter import * from awesometkinter.bidirender import add_bidi_support # Create Object root = Tk() frame2 = Frame() frame2.pack(pady=10) address = Text(frame2,width=37,height=10) address.pack() add_bidi_support(address) #address root.mainloop() 1 اقتباس
السؤال
عمار هبه
لدي برنامج لكتابة نص.. لكن عند كتابة النص بالعربية تكون الحروف مقطعه ومقلوبه ..اليكم الكود ...ثم اروني الحل للمشكلة.. وكل حبي وتقديري لكم
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.