วันอังคารที่ 13 พฤศจิกายน พ.ศ. 2561

mini Project [update]

สร้างหน้า  GUI หลายหน้าและเชื่อมต่อแต่ละหน้าเข้าด้วยกันได้แล้ว

========= import เครื่องมือที่ต้องการใช้งาน==================
from kivy.app import App
from kivy.lang import Builder
from kivy.config import Config
from kivy.metrics import dp, sp
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.uix.screenmanager import ScreenManager, Screen

=============load file===================
โหลดไฟล์ .kv ที่ทำการจัดการหน้าต่างมาใช้งาน
#load file gui
Builder.load_file("gui.kv")


============= build class================
สร้าง class สำหรับแต่ละการทำงานไว้ โดยให้ pass ไปก่อนเพื่อรอนำมารวมการฟังก์ชันการทำงานที่เพื่อนออกแบบ


# Declare both screens
class StartScreen(Screen):
pass

class MenuScreen(Screen):
pass

class TranslateScreen(Screen):
pass

class KeepScreen(Screen):
pass

class PlayScreen(Screen):
pass


============== screen manager===============
จัดการหน้าต่าง โดยการใช้ screenmanager และ add widget ในส่วนของ screen แต่ละหน้าเข้าไปให้ screenmanager จัดการ

# Create the screen manager
sm = ScreenManager()
sm.add_widget(StartScreen(name='START'))
sm.add_widget(MenuScreen(name='MENU'))
sm.add_widget(TranslateScreen(name='TRANSLATE'))
sm.add_widget(KeepScreen(name='KEEP'))
sm.add_widget(PlayScreen(name='SPELL'))


======ส่วนเรียกใช้ให้แสดงการทำงาน========
class TestApp(App):

def build(self):
Config.set('graphics' , 'width' , '500')
Config.set('graphics' , 'height' , '300')
#set not to change size window
Config.set('graphics' , 'resizable' , False)
return sm

if __name__ == '__main__':
TestApp().run()


===================================================
การจัดหน้าต่าง GUI ใช้การจัดการด้วยไฟล์ .kv
#หน้าต่างแรก แสดงชื่อ Grade "A" English ปุ่ม START เข้าโปรแกรม และ Exit เพื่อปิดโปรแกรม
<StartScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text:'Grade "A" English'
font_size:'60' #กำหนดขนาดตัวอักษร
Button:
text: 'START'
on_press: root.manager.current = 'MENU' #เมื่อกดปุ่มนี้ให้เชื่องโยงไปที่หน้า MANU
Button:
text: 'Exit'

#ให้เลือกการทำงานแต่ละ case
#หน้า MANU
<MenuScreen>:
BoxLayout:
orientation: 'vertical'
Button:
text: 'TRANSLATE'
on_press: root.manager.current = 'TRANSLATE'#เข้าไปที่หน้า TRANSLATE
Button:
text: 'KEEP'
on_press: root.manager.current = 'KEEP'#เข้าไปที่หน้า KEEP
Button:
text: 'SPELL'
on_press: root.manager.current = 'SPELL'#เข้าไปที่หน้า SPELL
Button:
text: 'EXIT'
on_press: root.manager.current = 'START'#กลับไปที่หน้า START


#หน้าต่างการแปลความหมาย
<TranslateScreen>:
BoxLayout:
orientation: 'vertical'
Button:
text: 'SEARCH' #ปุ่ม SEARCH สำหรับกดค้นหาความหมาย
Button:
text: 'Back to menu'
on_press: root.manager.current = 'MENU' #กลับไปที่หน้า MENU


#หน้าต่างคำศัพท์ที่ Keep
<KeepScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'KEEP' # แสดงชื่อหัวข้อว่า KEEP
Button:
text:'word' #ส่วนปุ่มสำหรับเวลาเพิ่มคำศัพท์เข้ามาจะให้แสดงเป็นปุ่มแต่ละปุ่ม
Button:
text: 'Back to menu'
on_press: root.manager.current = 'MENU' #กลับไปที่หน้า MENU


#หน้าต่างให้เล่นเกมสะกดคำศัพท์
<PlayScreen>:
BoxLayout:
orientation: 'vertical'
Label:
text: 'Meaning' #ให้แสดงความหมายของคำที่ต้องการให้สะกด
Button:
text: 'Back to menu'
on_press: root.manager.current = 'MENU' #กลับไปที่หน้า MENU
=====================================================
ปัญหาปัจจุบัน
นำภาษาไทยขึ้นแสดงบน GUI ไม่ได้

ปรับขนาดหน้าจอไม่ได้
ฟังก์ชันการทำงานยังสร้างไม่ครบ
ยังไม่ได้เชื่อมต่อส่วนฟังก์ชันกับหน้า GUI
ยังไม่สามารถเชื่อมต่อฐานข้อมูลได้

=====================================================
commit แล้ว

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

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