2. ทำการเปิด folder python แล้วกด new file
3. ตั้งชื่อไฟล์ว่า Rand.py แล้วกด enter เพื่อสร้างไฟล์

4. ทำการพิมพ์โค้ดสุ่มรายการอาหารลงไป (ตามโค้ดด้านล่าง)
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด import random #ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน #ประกาศตัวแปร lunch มาเก็บรายการอาหาร lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"] #แสดงผลรายการอาหารโดยการสุ่ม print(random.choice(lunch))
5. สร้างหน้าจอแสดงผลแบบ GUI (Graphic User Interface)

#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
#แสดงผลรายการอาหารโดยการสุ่ม
print(random.choice(lunch))
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop()
6. สร้าง object ปุ่มกด (button), label สำหรับแสดงข้อความบนหน้าจอ
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
#แสดงผลรายการอาหารโดยการสุ่ม
print(random.choice(lunch))
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#สร้างปุ่มกด button
tk.Button(app,text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
ตัวอย่าง row column
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
#แสดงผลรายการอาหารโดยการสุ่ม
print(random.choice(lunch))
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 2
tk.Label(app,text="แสดงผลลัพธ์ 2",font=("Tahoma",16),foreground="red").grid(row=0,column=1)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#สร้างปุ่มกด button
tk.Button(app,text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
7. การแสดงรูปภาพบน form TKInter จะต้องใช้ PILLOW ซึ่งต้อง Install PIL Lib ก่อน เพราะไม่ใช่ฟังชั่นมาตรฐานของ python
หลังจากนั้นไปหารูปภาพอาหารมาวางที่เดียวกับไฟล์งานของเราดังภาพ

code
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#import lib แสดง image บน form ต้องใช้ Pillow
from PIL import Image,ImageTk #เรียกใช้งาน
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
#แสดงผลรายการอาหารโดยการสุ่ม
print(random.choice(lunch))
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 2
tk.Label(app,text="แสดงผลลัพธ์ 2",font=("Tahoma",16),foreground="red").grid(row=0,column=1)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
#tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#เอา Image มาแสดงบนฟอร์ม ประกาศตัวแปรมาแสดงภาพ
myimg=Image.open("krapow.png")
# ย่อรูป (ปรับตามขนาดที่ต้องการ)
myimg = myimg.resize((100, 100))
photo=ImageTk.PhotoImage(myimg)
#ให้แสดงผล Label ที่แสดงผลเป็น Image
tk.Label(app,image=photo).grid(row=1,column=1)
#สร้างปุ่มกด button
tk.Button(app,text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
รูปภาพให้save ไว้ในฟอรเดอร์ python

8. สร้างฟังชั่นและแก้ไขปุ่มกด ให้กดแล้วทำตามคำสั่งดังภาพ

code step 1 กดแล้วขึ้นว่า กดแล้ว
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#import lib แสดง image บน form ต้องใช้ Pillow
from PIL import Image,ImageTk #เรียกใช้งาน
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
#แสดงผลรายการอาหารโดยการสุ่ม
print(random.choice(lunch))
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
#tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#เอา Image มาแสดงบนฟอร์ม ประกาศตัวแปรมาแสดงภาพ
myimg=Image.open("krapow.png")
# ย่อรูป (ปรับตามขนาดที่ต้องการ)
myimg = myimg.resize((200, 200)) #ย่อรูปด้วยคำสั่ง resize ขนาดกว้าง 200 สูง 200
photo=ImageTk.PhotoImage(myimg)
#ให้แสดงผล Label ที่แสดงผลเป็น Image
tk.Label(app,image=photo).grid(row=1,column=1)
#สร้างฟังชั่น clicked เพื่อรับคำสั่งเมื่อกดปุ่ม
def clicked():
#ให้เขียนคำสั่งในนี้
#label 2
tk.Label(app,text="กดแล้ว",
font=("Tahoma",16),
foreground="red").grid(row=0,column=1)
#สร้างปุ่มกด button
tk.Button(app,command=lambda:clicked(),text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
code step 2 สั่ง random อาหาร
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#import lib แสดง image บน form ต้องใช้ Pillow
from PIL import Image,ImageTk #เรียกใช้งาน
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
#tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#เอา Image มาแสดงบนฟอร์ม ประกาศตัวแปรมาแสดงภาพ
myimg=Image.open("krapow.png")
# ย่อรูป (ปรับตามขนาดที่ต้องการ)
myimg = myimg.resize((200, 200)) #ย่อรูปด้วยคำสั่ง resize ขนาดกว้าง 200 สูง 200
photo=ImageTk.PhotoImage(myimg)
#ให้แสดงผล Label ที่แสดงผลเป็น Image
tk.Label(app,image=photo).grid(row=1,column=1)
#สร้างฟังชั่น clicked เพื่อรับคำสั่งเมื่อกดปุ่ม
def clicked():
#ให้เขียนคำสั่งในนี้
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวพัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
print(random.choice(lunch))
#label 2 ตรง text= เอาฟังชั่น random ด้านบนมาใส่
tk.Label(app,text=random.choice(lunch),
font=("Tahoma",16),
foreground="red").grid(row=0,column=1)
#สร้างปุ่มกด button
tk.Button(app,command=lambda:clicked(),text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
แก้ปัญหา label สร้างซ้อนแล้วทับกัน เพราะว่าไม่ได้กำหนดให้ label สร้างมาไว้ก่อน ควรจะเอาตัวแปรมารับ
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#import lib แสดง image บน form ต้องใช้ Pillow
from PIL import Image,ImageTk #เรียกใช้งาน
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
#tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#เอา Image มาแสดงบนฟอร์ม ประกาศตัวแปรมาแสดงภาพ
myimg=Image.open("krapow.png")
# ย่อรูป (ปรับตามขนาดที่ต้องการ)
myimg = myimg.resize((200, 200)) #ย่อรูปด้วยคำสั่ง resize ขนาดกว้าง 200 สูง 200
photo=ImageTk.PhotoImage(myimg)
#ให้แสดงผล Label ที่แสดงผลเป็น Image
tk.Label(app,image=photo).grid(row=1,column=1)
#สร้างตัวแปร label มาเก็บ label2
label2=tk.Label(app,text="",
font=("Tahoma",16),
foreground="red")
#สร้างฟังชั่น clicked เพื่อรับคำสั่งเมื่อกดปุ่ม
def clicked():
#ให้เขียนคำสั่งในนี้
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวผัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
randomed=random.choice(lunch)
print(randomed)
#label 2 ตรง text= เอาฟังชั่น random ด้านบนมาใส่
label2.config(text=randomed)
label2.grid(row=0,column=1)
#สร้างปุ่มกด button
tk.Button(app,command=lambda:clicked(),text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
จะต้องแก้ไขการโหลดรายการอาหาร เข้ามาเมื่อกดปุ่มต้องแสดงรายการแรนดอมอาหารได้

code
#ทำการโหลดรูปรายการอาหารทั้งหมด
radnha=Image.open("radnha.png")
#ย่อขนาดรูปให้ 200px
radnha=radnha.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_radnha
food_radnha=ImageTk.PhotoImage(radnha)
kowpud=Image.open("kowpud.png")
#ย่อขนาดรูปให้ 200px
kowpud=kowpud.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_kowpud
food_kowpud=ImageTk.PhotoImage(kowpud)
krapow=Image.open("krapow.png")
#ย่อขนาดรูปให้ 200px
krapow=krapow.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_krapow
food_krapow=ImageTk.PhotoImage(krapow)
หลังจากเตรียมตัวแปรสำหรับโหลดรูปรายการอาหารเรียบร้อยแล้ว หลังจากนั้นจะต้องกลับไปที่ funtion กดปุ่ม เพื่อเอารูปที่เตรียมไว้มาใช้
code ทั้งหมดดังนี้
#เรียก lib (library) random เพื่อให้สุ่มค่าตัวแปรที่กำหนด
import random
#import lib สำหรับทำ GUI
import tkinter as tk
from tkinter import*
#import lib แสดง image บน form ต้องใช้ Pillow
from PIL import Image,ImageTk #เรียกใช้งาน
#สร้าง GUI
app=tk.Tk() #เริ่มเรียกใช้ lib tk
app.title('กินไรดี') #ตั้งหัวฟอร์มว่า กินไรดี
#label 1
tk.Label(app,text="แสดงผลลัพธ์",font=("Tahoma",16),foreground="red").grid(row=0,column=0)
#label 3
tk.Label(app,text="แสดงผลลัพธ์ 3",font=("Tahoma",16),foreground="red").grid(row=0,column=2)
#label 4
#tk.Label(app,text="แสดงผลลัพธ์ 4",font=("Tahoma",16),foreground="red").grid(row=1,column=1)
#เอา Image มาแสดงบนฟอร์ม ประกาศตัวแปรมาแสดงภาพ
#myimg=Image.open("krapow.png")
# ย่อรูป (ปรับตามขนาดที่ต้องการ)
#myimg = myimg.resize((200, 200)) #ย่อรูปด้วยคำสั่ง resize ขนาดกว้าง 200 สูง 200
#photo=ImageTk.PhotoImage(myimg)
#ให้แสดงผล Label ที่แสดงผลเป็น Image
#tk.Label(app,image=photo).grid(row=1,column=1)
#ทำการโหลดรูปรายการอาหารทั้งหมด
radnha=Image.open("radnha.png")
#ย่อขนาดรูปให้ 200px
radnha=radnha.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_radnha
food_radnha=ImageTk.PhotoImage(radnha)
kowpud=Image.open("kowpud.png")
#ย่อขนาดรูปให้ 200px
kowpud=kowpud.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_kowpud
food_kowpud=ImageTk.PhotoImage(kowpud)
krapow=Image.open("krapow.png")
#ย่อขนาดรูปให้ 200px
krapow=krapow.resize((200,200))
#Load รูปไปเก็บไว้ใน memory ภายใต้ตัวแปร food_krapow
food_krapow=ImageTk.PhotoImage(krapow)
#สร้างตัวแปร label มาเก็บ label2
label2=tk.Label(app,text="",
font=("Tahoma",16),
foreground="red")
#สร้างตัวแปร label มาเก็บ label3 แสดงข้อความ
label3=tk.Label(app,text="",
font=("Tahoma",16),
foreground="red")
#สร้างฟังชั่น clicked เพื่อรับคำสั่งเมื่อกดปุ่ม
def clicked():
#ให้เขียนคำสั่งในนี้
#ใช้ตัวแปรแบบ list มาเก็บรายการอาหารกลางวัน
#ประกาศตัวแปร lunch มาเก็บรายการอาหาร
lunch=["ข้าวผัด","ราดหน้า","กระเพราไก่ไข่ดาว"]
randomed=random.choice(lunch)
print(randomed)
#ใช้คำสั่ง if เพื่อตรวจว่าได้ผลลัพธ์อะไร แล้วให้แสดงรูปตามผลลัพธ์นั้น
if randomed=="ข้าวผัด":
label2.config(image=food_kowpud) #แสดงรูป
label3.config(text=randomed) #แสดงข้อความใต้รูป
if randomed=="ราดหน้า":
label2.config(image=food_radnha) #แสดงรูป
label3.config(text=randomed) #แสดงข้อความใต้รูป
if randomed=="กระเพราไก่ไข่ดาว":
label2.config(image=food_krapow) #แสดงรูป
label3.config(text=randomed) #แสดงข้อความใต้รูป
#label 2 ตรง text= เอาฟังชั่น random ด้านบนมาใส่
label2.config(text=randomed)
label2.grid(row=0,column=1)
label3.grid(row=1,column=1)
#สร้างปุ่มกด button
tk.Button(app,command=lambda:clicked(),text="คำนวน",bg="green",font=("Tahoma",25)).grid(row=2,column=1)
app.geometry("500x500") #ตั้งขนาดเป็น กว้าง 500pixel สูง500pixel (500px)
app.mainloop() #แสดง form ที่สร้าง ด้วยคำสั่ง mainloop
ถ้ายากให้ภาพหมุนๆ แล้วหยุดก็ใช้โค้ดต่อไปนี้ (ให้ chatgpt ช่วย)
import random
import tkinter as tk
from PIL import Image, ImageTk
app = tk.Tk()
app.title('กินไรดี')
# โหลดรูปทั้งหมด
radnha = Image.open("radnha.png").resize((200, 200))
kowpud = Image.open("kowpud.png").resize((200, 200))
krapow = Image.open("krapow.png").resize((200, 200))
food_radnha = ImageTk.PhotoImage(radnha)
food_kowpud = ImageTk.PhotoImage(kowpud)
food_krapow = ImageTk.PhotoImage(krapow)
foods = [
("ข้าวผัด", food_kowpud),
("ราดหน้า", food_radnha),
("กระเพราไก่ไข่ดาว", food_krapow)
]
# Label แสดงรูป และข้อความ
label_img = tk.Label(app)
label_img.grid(row=0, column=1)
label_text = tk.Label(app, text="", font=("Tahoma", 16), fg="red")
label_text.grid(row=1, column=1)
animation_running = False # ป้องกันกดรัว
# -----------------------------
# ฟังก์ชัน Animation
# -----------------------------
def animate(count):
global animation_running
if count <= 0:
animation_running = False
show_final()
return
name, img = random.choice(foods)
label_img.config(image=img)
label_img.image = img
app.after(80, lambda: animate(count - 1))
# -----------------------------
# แสดงผลลัพธ์สุดท้าย
# -----------------------------
def show_final():
name, img = random.choice(foods)
label_img.config(image=img)
label_img.image = img
label_text.config(text=name)
# -----------------------------
# เมื่อกดปุ่ม
# -----------------------------
def clicked():
global animation_running
if animation_running:
return
animation_running = True
animate(15) # จำนวนครั้งที่เปลี่ยนภาพระหว่าง animation
# ปุ่มสุ่ม
tk.Button(app, command=clicked, text="สุ่มอาหาร", bg="green", font=("Tahoma", 25)).grid(row=2, column=1)
app.geometry("500x500")
app.mainloop()
final ทำการ compile โปรแกรมเป็น exe เพื่อไว้ใช้งาน
ต้องโหลด lib
- pip install pyinstaller
- กรณีลงไม่ผ่านอาจจะติดสิทธิให้ใช้คำสั่ง py -m pip install pyinstaller เป็นการสั่งลงไม่สนสิทธิ
หลังจากนั้นก็ให้พิมพ์ pyinstaller Rand.py เพื่อสร้างดังภาพ
จะได้ไฟล์ Rand.exe มาใน C:\python\dist (จะมี folder นี้) อย่าลืมให้เอาภาพเข้าไปวางไว้ด้วยไม่งั้น Rand.exe จะกดแล้ว error แล้วมันจะหายไป ไม่แสดงอะไร
ถ้าอยากเปลี่ยน icon ตอนใช้คำสั่ง pyinstaller ให้ใส่ –icon=ชื่อไฟล์ไอคอนลงไป Rand.py แต่ต้องมีไฟล์ที่ทำ ico ไว้ในที่เดียวกับไฟล์ Rand.py

คำสั่ง pyinstaller –onefile –icon=krapow_icon.ico Rand.py
ไฟล์ทั้งหมด
final_code







