สร้างหน้าจอมาแต่อยากให้เป็นภาษาไทยทำยังไงค่ะ

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
# Created with FarPy GUIE v0.5.5
 
import wx
import wx.calendar
 
class MyFrame(wx.Frame):	
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, -1, 'Login', wx.DefaultPosition, (250, 150), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
		self.panel = wx.Panel(self, -1)
 
		self.label1 = wx.StaticText(self.panel, -1, 'Username', (20,20), (55, 18))
		self.label1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.label2 = wx.StaticText(self.panel, -1, 'Password', (20,50), (54, 18))
		self.label2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox1 = wx.TextCtrl(self.panel, -1, 'xxxxxx', (90,20), size=(132, 20))
		self.textbox1.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox2 = wx.TextCtrl(self.panel, -1, 'xxxxxxxx', (88,48), size=(132, 20))
		self.textbox2.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button1 = wx.Button(self.panel, -1, 'Ok', (24,94), (64, 18))
		self.button1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button2 = wx.Button(self.panel, -1, 'Cancal', (150,94), (64, 18))
		self.button2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
 
#---------------------------------------------------------------------------
class MyApp(wx.App):
	def OnInit(self):
		frame = MyFrame(None, 'App')
		frame.Show(True)
		self.SetTopWindow(frame)
		return True
 
app = MyApp(True)
app.MainLoop()
veer's picture

FarPy มันใช้ดีมะ?
---
http://blog.vee-u.com/

มันก็วาดง่ายดี
แต่ยังใช้ไม่แม่น
ไม่รู้ว่าทำเสร็จแล้วถ้ายากนำค่าที่รับเข้ามามาตรวจสอบจะต้องทำไงต่อ

veer's picture
# -*- coding: UTF-8 -*-
import wx
import wx.calendar
 
class MyFrame(wx.Frame):	
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, -1, 'Login', wx.DefaultPosition, (250, 150), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
		self.panel = wx.Panel(self, -1)
 
		self.label1 = wx.StaticText(self.panel, -1, 'Username', (20,20), (55, 18))
		self.label1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.label2 = wx.StaticText(self.panel, -1, 'Password', (20,50), (54, 18))
		self.label2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox1 = wx.TextCtrl(self.panel, -1, 'ไทย', (90,20), size=(132, 20))
		self.textbox1.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox2 = wx.TextCtrl(self.panel, -1, 'ชิ', (88,48), size=(132, 20))
		self.textbox2.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button1 = wx.Button(self.panel, -1, 'Ok', (24,94), (64, 18))
		self.button1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button2 = wx.Button(self.panel, -1, 'Cancal', (150,94), (64, 18))
		self.button2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
 
#---------------------------------------------------------------------------
class MyApp(wx.App):
	def OnInit(self):
		frame = MyFrame(None, 'App')
		frame.Show(True)
		self.SetTopWindow(frame)
		return True
 
app = MyApp(True)
app.MainLoop()

screenshot
---
http://blog.vee-u.com/

อยากให้พวกคำว่า usename password ok cancal เป็นภาษาไทยอ่ะค่ะ ต้องทำยังไง
แล้วอีกอย่างยากให้เป็นประมาณว่ารับข้อมูลจากทางหน้าจอมาประมวณผลต้องเขียนคำสั่งอย่างไร

veer's picture
# -*- coding: UTF-8 -*-
import wx
import wx.calendar
 
class MyFrame(wx.Frame):	
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, -1, 'Login', wx.DefaultPosition, (250, 150), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
		self.panel = wx.Panel(self, -1)
 
		self.label1 = wx.StaticText(self.panel, -1, 'Username', (20,20), (55, 18))
		self.label1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.label2 = wx.StaticText(self.panel, -1, 'Password', (20,50), (54, 18))
		self.label2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox1 = wx.TextCtrl(self.panel, -1, 'ไทย', (90,20), size=(132, 20))
		self.textbox1.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox2 = wx.TextCtrl(self.panel, -1, 'ชิ', (88,48), size=(132, 20))
		self.textbox2.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button1 = wx.Button(self.panel, -1, 'ได้', (24,94), (64, 30))
		self.button1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button2 = wx.Button(self.panel, -1, 'มะเอา', (150,94), (64, 30))
		self.button2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
 
#---------------------------------------------------------------------------
class MyApp(wx.App):
	def OnInit(self):
		frame = MyFrame(None, 'App')
		frame.Show(True)
		self.SetTopWindow(frame)
		return True
 
app = MyApp(True)
app.MainLoop()

screenshot

---
http://blog.vee-u.com/

Traceback (most recent call last):
  File "C:\Documents and Settings\Administrator\Desktop\GUI\Project\login.py", line 49, in <module>
    app = MyApp(True)
  File "C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7836, in __init__
    self._BootstrapApp()
  File "C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7433, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "C:\Documents and Settings\Administrator\Desktop\GUI\Project\login.py", line 44, in OnInit
    frame = MyFrame(None, 'App')
  File "C:\Documents and Settings\Administrator\Desktop\GUI\Project\login.py", line 32, in __init__
    self.button1 = wx.Button(self.panel, -1, 'ตกลง', (24,94), (64, 18))
  File "C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_controls.py", line 87, in __init__
    _controls_.Button_swiginit(self,_controls_.new_Button(*args, **kwargs))
  File "C:\Python25\lib\encodings\cp874.py", line 15, in decode
    return codecs.charmap_decode(input,errors,decoding_table)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 5: character maps to <undefined>

ก็ลองเปลี่ยนแล้วนะค่ะ แต่ทำไมมันขึ้นแบบนี้หละ แถมไม่ขึ้นหน้าจอเลย

sugree's picture

ใส่ไว้บนๆ

# -*- encoding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

ยืมมาจากข้างล่าง

ตัว comment "encoding" ต้องอยู่ภายใน 2 หรือ 3 บรรทัดแรกเท่านั้นนะ (ขออภัย จำไม่แม่นว่ากี่บรรทัดแน่)

ขโมยซีน... :D

veer's picture

แปลกๆนะมีไปเรียก CP874 ด้วย. หรือเป็นเพราะ MS Windows? ลองเอาไฟล์นี้ไป run ดู แบบไม่ต้องเปลี่ยนแปลงอะไรเลยนะครับ http://www.vee-u.com/example/wxu8ex.py (download แล้ว save แล้วสั่ง run เลยนะครับ. อย่าเอา notepad, notepad++, editplus, idle หรือโปรแกรมต่างๆที่คล้ายกันมาแก้ไข. เปิดดูได้แต่ว่าอย่า save ละกัน ให้มั่นใจว่าไฟล์มันเป็นแบบเดิม)

จะได้รู้ว่าเป็นที่โปรแกรมหรือ wxWidgets กันแน่.
---
http://blog.vee-u.com/

veer's picture

ประมวล ใช้ ล.ลิง (มั้ง). จริงๆผมก็เขียนผิดบ่อยมากๆอะ. แต่ก็บอกๆไว้. เขียน wx ไม่เป็นอะ อย่างงง รอคนอื่นมาตอบดีกว่า. ที่ใส่ภาษาไทยผมก็แค่ replace string แล้ว ใส่ header ว่าเป็น UTF-8 อะ แก้มากกว่านี้ทำมะเปงละ.
---
http://blog.vee-u.com/

ทำบน window รึเปล่าค่ะ

veer's picture

ใช้ X-Window อะ. แต่ wx เป็น wxgtk
---
http://blog.vee-u.com/

file แรกที่ใช้เรียกโปรแกรม ผมจะใส่เข้าไปที่หัวประมาณนี้ครับ

# -*- encoding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

ส่วนไฟล์อื่นๆ ก็ใส่แค่

# -*- encoding: utf-8 -*-

อ่านออกมาเป็นภาษาไทยแล้วค่ะ
ขอบคุณทุกคนมากค่ะ

veer's picture

แก้ยังไงถึงทำได้อะ?
---
http://blog.vee-u.com/

ทำอย่างที่คุณ sugree กับ cwt บอกค่ะ
เอา code ที่ให้ไว้ไปใส่ที่ส่วนต้น ๆ

veer's picture

ขอบคุณครับ :-)
---
http://blog.vee-u.com/

อยากให้เมื่อใส่ค่าลงในช่องว่างแล้ว กด ok แล้ว
ให้นำค่าที่ใส่มาประมวณผลจะต้องเขียนเพิ่มอย่างไรค่ะ

sugree's picture

ช่องว่างไหน ok ไหน

ช่องว่างก็คือ textbox
ok ก็คือ ปุ่ม ok ค่ะ

sugree's picture
# -*- encoding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
import wx
import wx.calendar
 
class MyFrame(wx.Frame):	
	def __init__(self, parent, title):
		wx.Frame.__init__(self, parent, -1, 'Login', wx.DefaultPosition, (250, 150), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
		self.panel = wx.Panel(self, -1)
 
		self.label1 = wx.StaticText(self.panel, -1, 'Username', (20,20), (55, 18))
		self.label1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.label2 = wx.StaticText(self.panel, -1, 'Password', (20,50), (54, 18))
		self.label2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.label2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox1 = wx.TextCtrl(self.panel, -1, 'ไทย', (90,20), size=(132, 20))
		self.textbox1.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.textbox2 = wx.TextCtrl(self.panel, -1, 'ชิ', (88,48), size=(132, 20))
		self.textbox2.SetBackgroundColour(wx.Colour(255, 255, 255))
		self.textbox2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.textbox2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
		self.button1 = wx.Button(self.panel, -1, 'Ok', (24,94), (64, 18))
		self.button1.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button1.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
		self.button1.Bind(wx.EVT_BUTTON, self.button1Click)
 
		self.button2 = wx.Button(self.panel, -1, 'Cancal', (150,94), (64, 18))
		self.button2.SetFont(wx.Font(8.25, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, 0, 'Microsoft Sans Serif'))
		self.button2.SetCursor(wx.StockCursor(wx.CURSOR_DEFAULT))
 
	def button1Click(self, event):
		print self.textbox1.GetValue()
		print self.textbox2.GetValue()
 
#---------------------------------------------------------------------------
class MyApp(wx.App):
	def OnInit(self):
		frame = MyFrame(None, 'App')
		frame.Show(True)
		self.SetTopWindow(frame)
		return True
 
app = MyApp(True)
app.MainLoop()

นี่เรียกว่า collaborative programming ได้รึยังเนี่ย

555 คุณ sugree ครับ ผมว่า ทำเป็น opensource project เลยละกันครับ

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น