วันพฤหัสบดีที่ 22 พฤศจิกายน พ.ศ. 2561

นำภาษาไทยขึ้น GUI

        การแสดงภาษาไทยขึ้นบนหน้า GUI สามารถทำได้โดยการ นำ font ที่รองรับภาษาไทยมาใส่ไว้ในโฟลเดอร์เดียวกันกับ .kv และ .py จากนั้นให้ทำการกำหนด font_name : "ชื่อ font" ในส่วนที่ต้องการให้แสดงภาษาไทย แต่เนื่องจากเครื่องคอมพิวเตอร์มีปัญหาไม่รองรับภาษาไทย ทำให้เมื่อใส่คำสั่งตามนั้นแล้วไม่สามารถแสดงภาษาไทยได้ จึงได้ทำการใส่คำสั่ง encoding='utf8' ลงไปในไฟล์โปรแกรม .py
และทำให้สามารถแสดงภาษาไทยบนหน้าต่าง GUI ได้


=======================================================
ไฟล์ .kv
หน้าแรก
<MenuScreen>:
    BoxLayout:
        orientation: 'vertical'
        Label:
            text: 'เก็บ A'
            font_size:'60'
            font_name:"THSarabunNew.ttf"   # กำหนด font ที่รองรับภาษาไทย
        Button:
            text: 'TRANSLATE'
            font_size:'32'
            size:[30,30]
            size_hint:(0.7,0.3)
            pos_hint:{'center_x':0.5}
            on_press: root.manager.current = 'TRANSLATE'
        Button:
            text: 'KEEP'
            font_size:'32'
            size:[30,30]
            size_hint:(0.7,0.3)
            pos_hint:{'center_x':0.5}
            on_press: root.manager.current = 'KEEP'
        Button:
            text: 'SPELL'
            font_size:'32'
            size:[30,30]
            size_hint:(0.7,0.3)
            pos_hint:{'center_x':0.5}
            on_press: root.manager.current = 'SPELL'
        Button:
            text: 'EXIT'
            color:[1,0,0,0.7]
            font_size:'32'
            size:[30,30]
            size_hint:(0.7,0.3)
            pos_hint:{'center_x':0.5}         
            on_press: root.manager.current = exit()
...............................................................................................................................
in file .py

#เมื่อเปิดไฟล์ gui.kv ให้ encoding ภาษาไทย ซึ่งเป็นคำสั่งที่ต้องใส่ถ้าหากทำตามวิธีที่กล่าวไปในตอนต้นไม่ได้ผล
with open('gui.kv', encoding='utf8') as f:
Builder.load_string(f.read())

vocabulary = {}
vocabulary2 = {}
wordfavourite = []
key = []
value = []
#open file
import csv
file = open("vocab.csv", "r",encoding="utf-8")
vocabulary_table = csv.reader(file)
for word, mean in vocabulary_table:
vocabulary.setdefault(word)
vocabulary[word] = mean
vocabulary2.setdefault(mean)
vocabulary2[mean] = word
key.append(word)
value.append(mean)

# Declare both screens
class MenuScreen(Screen):
pass

class TranslateScreen(Screen):

def search(self,wordvocab):
print(wordvocab)
if wordvocab in vocabulary.keys(): #หาคำจาก .keys() และ .values() ที่เก็บในรูป dictionary
print(vocabulary[wordvocab])
self.synonyms_thai(vocabulary[wordvocab],wordvocab)
self.trans.text = vocabulary[wordvocab]
elif wordvocab in vocabulary.values():
print(vocabulary2[wordvocab])
self.synonyms_english(vocabulary2[wordvocab],wordvocab)
self.trans.text = vocabulary2[wordvocab]
else :
self.trans.text = "Word not found"
#ตรวจสอบหาคำเหมือน
def synonyms_thai(self,wordcheck,wordvocab):
for i in vocabulary2.keys():
if (i == wordcheck and vocabulary2[wordcheck] is wordvocab):
print(vocabulary2[wordcheck])

def synonyms_english(self,wordcheck,wordvocab):
for i in vocabulary.keys():
if (i == wordcheck and vocabulary[wordcheck] is wordvocab):
print(vocabulary[wordcheck])
==============================================================================
ค้นหาคำศัพท์จากภาษาอังกฤษ


ค้นหาคำศัพท์จากภาษาไทย


เมื่อสะกดผิดหรือไม่มีข้อมูล จะแสดง word not found



==================================================================================

changeset: 12:248ae9c9607f

ไม่มีความคิดเห็น:

แสดงความคิดเห็น