Python tkinter สร้างปุ่มเมนูเพื่อเปิดไฟล์ภาพ


แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

ichimarusoichi
PHP Super Member
PHP Super Member
Posts: 352
Joined: 07/01/2019 12:19 pm

Python tkinter สร้างปุ่มเมนูเพื่อเปิดไฟล์ภาพ

Post by ichimarusoichi » 01/02/2019 4:53 pm

สร้างแทบเมนูและการทำงานต่างๆด้วย Python tkinter ในส่วนของการนำมาใช้งานนั้นผมจะเพื่อคำสั่งเปิดไฟล์เพื่อเลือกไฟล์ภาพที่รองรับหลายประเภทมาเปิดในหน้าจอ Output กันนะครับอย่างแรกเลยถ้าใครยังไม่ได้ทำการติดตั้ง Path PIL นั้นให้กด คลิ๊กที่นี้ เพื่อดูคำสั่งในการติดตั้ง

Input

Code: Select all

from tkinter import Tk,Menu,Label
from PIL import Image,ImageTk
from tkinter import filedialog

class MainApp:

    def __init__(self,master):
        #assign class variable to input parameter
        self.master = master
        #set title
        self.master.title("Open IMG")
        self.lbl = Label(self.master)

    def createMenu(self):
        #กำหนดตัวแปรคลาสให้กับพารามิเตอร์อินพุต
        menubar = Menu(self.master)
        self.master.config(menu=menubar)
        #เมนูไฟล์
        fileMenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="File", menu=fileMenu)
        fileMenu.add_command(label="Open...",command=self.openFile)
        fileMenu.add_separator()
        fileMenu.add_command(label="Exit", command=self.master.destroy)
        #เมนูแก้ไข
        editMenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="Edit", menu=editMenu)
        editMenu.add_command(label="Restore Image", command=self.imgRestore)
        #เมนูที่ใช้กดหมุนภาพ
        processMenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="Process", menu=processMenu)
        processMenu.add_command(label="Rotate", command=self.imgRotate)

    def openFile(self):
        #ประเภทไฟล์รองรับ
        ftypes = [('Image files', '*.jpg *.png *.gif'),
        ('All files', '*')]
        filename = filedialog.askopenfilename(parent=self.master,title='Choose a file',filetypes=ftypes)
        if filename:
           try:
                #เปิดภาพ
                self.im = Image.open(filename)
                self.imOrigin = self.im.copy()
                self.showImage()
           except: pass

    def showImage(self):
        self.imTk = ImageTk.PhotoImage(self.im)
        self.lbl.destroy()
        self.lbl = Label(self.master, image=self.imTk)
        self.lbl.pack()

    def imgRestore(self):
        self.im = self.imOrigin.copy()
        self.showImage()

    def imgRotate(self):
        self.im = self.im.rotate(45)
        self.showImage()

gui = Tk()
gui.geometry("500x500")
app = MainApp(gui)
app.createMenu()
gui.mainloop()
Output
openfile.PNG
เมื่อทำการคลิ๊กที่เมนู File จะมีหัวข้อให้เลือก open จากนั้นก็เลือกภาพที่เราต้องการจะเปิด

คำสั่งการทำงานที่ใช้เปิดไฟล์นั้นสามารถเปิดไฟล์ได้เฉพาะรูปภาพ เปิดได้หลายประเภทเช่น jpg png gif หรือ All files เป็นต้น นอกนั้นจะเป็นคำสั่งที่อยู่ภายใต้ menubar แทบเมนู Process --> Rolate นั้นตั้งค่าหมุนที่ละ 45 องศา

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Python tkinter สร้างปุ่มเมนูเพื่อเปิดไฟล์ภาพ
-บทเรียน Python
-บทเรียน Python Framework Flask
-ความหมายของคำ คืออะไร
-VDO Tutorial - Python
-ถาม-ตอบ Java & Python

Return to “Programming - C/C++ & java & Python”

Users browsing this forum: No registered users and 5 guests