Bloggang.com : weblog for you and your gang
Sufficiency Economy
Group Blog
Japanese Language
ท่องศัพท์ภาษาญี่ปุ่นวันละคำ
NSW NDS DSi 3DS Programming
Romancing Saga2 Translation
My Japanese Coach
XNA Unity3d Programming
Miyoo Mini and Dingoo A-320
SNES NES GB programming
MAC OSX IOS APPLE
บันทึกช่วยจำ
บ้านไร่ ชายทุ่ง
Android
ไม่เข้ากลุ่ม
Graphic Art
Python Programming
Linux
English
VITA PSP Programming
Flutter WEB JAVA PHP JSP ASP
LibreOffice
ออกกำลังกาย
Gameboy Advance
All blogs
pyTorch
Youtube การใช้ Tkinter python
Python : Machine Learning [6]
Python : Machine Learning [5]
Python : Machine Learning [4]
Python : Machine Learning [3]
Python : Machine Learning [2]
Python : Machine Learning [1]
เชียนโปรแกรมได้ทุกที่ ด้วย Qpython
ทดลอง Natural Language Toolkit
python + ubuntu + japanese + write binary file ?
Python + Matplotlib
Python อ่าน และการเขียนข้อมูลลงใน binary file
ตัวอย่างการ load ไฟล์ จาก web mangareader.net
python: OpenCV สร้างภาพสีขาวดำ grayscale
python: OpenCV Crop ภาพ
Python: OpenCV ทำภาพ Smooth
python : ทดลองใช้ OpenCV
Python: การเขียนไฟล์ กับปุ่มกด
Python: โหลดการ์ตูนจาก web ตอนที่ 4
Python: โหลดการ์ตูนจาก web ตอนที่ 3
Python: โหลดการ์ตูนจาก web ตอนที่ 2
Python: โหลดการ์ตูนจาก web
Python อ่านข้อมูล text File (Lexitron)
Python อ่านโครงสร้างของ Table ของ MS Access
Python ทำโปรแกรมจัดการฐานข้อมูล MS Access อย่างง่าย
Python การจัดการ widgets ด้วย grid method
Python ติดต่อฐานข้อมูล Access
Python ทดลองเขียนโปรแกรมเครื่องคิดเลข บวก ลบ ตอนที่2
Python ทดลองเขียนโปรแกรมเครื่องคิดเลข บวก ลบ ตอนที่1
Python Step by Step ^ ^
ทดลองใช้ Python
Python ทดลองเขียนโปรแกรมเครื่องคิดเลข บวก ลบ ตอนที่1
หลังจากเล่นน้ำสงกรานต์ กันชุ่มช้ำ ก็มาเขียน python กันต่อ
ครั้งนี้ทดลองเขียนโปรแกรมเครื่องคิดเลข เฉพาะเครื่องหมายบวกกับลบ ง่ายๆ จะได้ศึกษาเรื่องการสร้าง Label, ปุ่มกด(button), การLayout, ฟังก์ชั่น (def) และเรื่อง lambda (อันนี้งงมาก
)
มาดูcode กันเลย ตัวเต็ม
download ได้ที่นี้
นะครับ
from Tkinter import *
เพื่อบอกว่าจะใช้ module จาก Tkinter
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
สามบรรทัดนี้สำหรับให้แสดงผลภาษาไทย ที่ net บอกว่า ใช้ utf-8 ง่ายกว่า
root = Tk() สร้าง หน้าจอหลัก
frame = Frame(root) สร้าง frame เพื่อใช้ในการจัด Layout
frame.pack() เป็น method สำหรับจัดการ widgets ก่อนกับใส่ใน parent window ซึ่งสามารถใช้ parameter เป็น LEFT RIGHT TOP BOTTOM
bframe = Frame(frame)
bframe.pack(side = BOTTOM)
b2frame = Frame(bframe)
b2frame.pack(side = BOTTOM)
b3frame = Frame(b2frame)
b3frame.pack(side = BOTTOM)
จากที่อธิบายข้างต้นตอนนี้เป็นการจัดการให้เกิดการจัด Layout ของแถวwidgets จำนวน 3 แถว ถ้ารวม frame ก็เป็น 4 แถว
ที่จริงการจัด layout นอกจากใช้ pack ยังมีแบบ place กับ grid อีก แต่ยังไม่ได้อ่าน
dispL = Label(frame, text="กรอกตัวเลขได้เลยครับ" )
dispL.pack()
การสร้าง Label ก็ง่ายๆ แค่ระบุว่าจะสร้างที่ widget อะไร และใส่ข้อความอะไร เสร็จแล้วก็ pack ส่ะ
ถ้าต้องการให้ขึ้นบรรทัดใหม่ ก็ใส่ back slash กับตัวอักษร n
disp = Label(frame, text="" )
disp.pack()
อันนี้เอาไว้แสดงว่าเรากดปุ่มอะไรบ้าง
n7 = Button(frame, text="7", padx=8, command = lambda b='7': callback(b))
n7.pack(side = LEFT)
การใส่ปุ่มกดก็คล้ายๆ Label แต่เพิ่ม การขยายขนาดก็ปุ่มคือ padx
การเรียกฟังก์ชั่นผ่าน command
โดยกรณีที่เราไม่ได้ส่งค่าไปให้ฟังก์ชั่น เราสามารถเขียนว่า command = callback ได้
แต่ถ้ามีการส่งค่าจะเขียน command = callback('7') ไม่ได้ งงเหมือนกันตรงจุดนี้
เลยไปหาข้อมูลจาก net เขาบอกว่าต้องใช้ lambda ช่วยก็จะเป็นแบบข้างบนรายละเอียดลองดู
//www.secnetix.de/olli/Python/lambda_functions.hawk
อ่านก็คง งงๆ อีก
ต่อไปก็เรื่องการเขียนฟังก์ชั่น
def callback(str):
disp['text'] = disp['text']+str
print str
ฟังก์ชั่นนี้เพื่อแสดงข้อมูล จะสังเกตเห็นว่ามันไม่มี จุดบอกจุดสิ้นสุดของ ฟังก์ชั่น ดังนั้นมันใช้การย่อหน้าาาาาาา ทำไมมันไม่ออกแบบว่าต้องเขียน end def หว่า
disp['text'] เป็นรูปแบบการอ้างถึงค่าproperties ใน Label ในที่นี้ก็คือ text
root.mainloop() ก็นี้ก็เป็น mainloop ที่ต้องใส่ไว้ท้ายโปรแกรม
ส่วนการคำนวณเอาไว้คร่าวหน้าครับ
Create Date : 14 เมษายน 2554
Last Update : 14 เมษายน 2554 18:50:03 น.
0 comments
Counter : 10931 Pageviews.
Share
Tweet
ชื่อ :
Comment :
*ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
wink99_th
Location :
พิษณุโลก Thailand
[Profile ทั้งหมด]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [
?
]
New Comments
Friends' blogs
Aorora
I^^
กิ่งลีลาวดี
มาทิรน
daikon
nainokkamin
jaikojung
Webmaster - BlogGang
[Add wink99_th's blog to your web]
Links
ชุมชนคนรัก ญี่ปุ่น และ ภาษาญี่ปุ่น
BlogGang.com
Pantip.com
|
PantipMarket.com
|
Pantown.com
| © 2004
BlogGang.com
allrights reserved.