Python GUI编程(Tkinter)笔记
生活随笔
收集整理的這篇文章主要介紹了
Python GUI编程(Tkinter)笔记
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python GUI編程Tkinter筆記
- 1 顯示任意格式圖片
- 2 固定框架Frame大小
- 3 選擇文件夾或文件
- 4 展示菜單欄
- 5 展示選擇的圖片
1 顯示任意格式圖片
Tkinter只支持顯示GIF圖片,若需要顯示PNG、JPG、BMP等格式圖片,方法如下:
import tkinter from PIL import Image, ImageTkroot = tkinter.Tk() label_text = tkinter.Label(root, text="圖片標(biāo)題") label_text.pack()img_open = Image.open('img/result.bmp') img_png = ImageTk.PhotoImage(img_open) label_img = tkinter.Label(root, image=img_png) label_img.pack() root.mainloop()2 固定框架Frame大小
frame會(huì)隨內(nèi)部的按鈕等部件擺放設(shè)置變化而變化大小,請(qǐng)問(wèn)怎樣能固定住?
Frame如果設(shè)置大小的話,只有當(dāng)使用了pack_propagate(0)或者grid_propagate(0)之后,(width,height)才起作用,而且調(diào)用前Frame要pack或者grid了。
3 選擇文件夾或文件
from tkinter import * from tkinter.filedialog import askdirectorydef selectPath():path_ = askdirectory()print(path_)path.set(path_)root = Tk() path = StringVar()Label(root, text="目標(biāo)路徑:").grid(row=0, column=0) Entry(root, textvariable=path).grid(row=0, column=1) Button(root, text="路徑選擇", command=selectPath).grid(row=0, column=2)root.mainloop()
4 展示菜單欄
from tkinter import *def new():s = '新建'lb1.config(text=s)def ope():s = '打開(kāi)'lb1.config(text=s)def sav():s = '保存'lb1.config(text=s)def cut():s = '剪切'lb1.config(text=s)def cop():s = '復(fù)制'lb1.config(text=s)def pas():s = '粘貼'lb1.config(text=s)def popupmenu(event):mainmenu.post(event.x_root, event.y_root)root = Tk() root.title('菜單實(shí)驗(yàn)') root.geometry('420x340')lb1 = Label(root, text='顯示信息', font=('黑體', 32, 'bold')) lb1.place(relx=0.2, rely=0.2)mainmenu = Menu(root) menuFile = Menu(mainmenu) # 菜單分組 menuFile mainmenu.add_cascade(label="文件", menu=menuFile) menuFile.add_command(label="新建", command=new) menuFile.add_command(label="打開(kāi)", command=ope) menuFile.add_command(label="保存", command=sav) menuFile.add_separator() # 分割線 menuFile.add_command(label="退出", command=root.destroy)menuEdit = Menu(mainmenu) # 菜單分組 menuEdit mainmenu.add_cascade(label="編輯", menu=menuEdit) menuEdit.add_command(label="剪切", command=cut) menuEdit.add_command(label="復(fù)制", command=cop()) menuEdit.add_command(label="粘貼", command=pas())root.config(menu=mainmenu) root.bind('Button-3', popupmenu) # 根窗體綁定鼠標(biāo)右擊響應(yīng)事件 root.mainloop()5 展示選擇的圖片
import tkinter as tk from tkinter import * from tkinter import filedialog import cv2 import numpy as np from PIL import Image, ImageTkclass DisplayImage:'''用于展示選擇的圖片'''def __init__(self, master):self.master = mastermaster.title("GUI")self.image_frame = Frame(master, bd=0, height=200, width=800, bg='yellow', highlightthickness=2,highlightbackground='gray', highlightcolor='black')self.image_frame.pack()self.Text_label = Label(master, text='圖像預(yù)覽')self.Text_label.pack()self.Choose_image = Button(master, command=self.choose_pic, text="Choose image",width=17, default=ACTIVE, borderwidth=0)self.Choose_image.pack()self.Display_image = Button(master, command=self.display_image, text="Display image",width=17, default=ACTIVE, borderwidth=0)self.Display_image.pack()self.filenames = []self.pic_filelist = []self.imgt_list = []self.image_labellist = []def display_image(self, event=None):# 在重新選擇圖片時(shí)清空原先列表self.pic_filelist.clear()self.imgt_list.clear()self.image_labellist.clear()# 清空框架中的內(nèi)容for widget in self.image_frame.winfo_children():widget.destroy()# 布局所選圖片for i in range(len(self.filenames)):self.pic_filelist.append(Image.open(self.filenames[i]).resize((200, 200)))self.imgt_list.append(ImageTk.PhotoImage(image=self.pic_filelist[i]))self.image_labellist.append(Label(self.image_frame, highlightthickness=0, borderwidth=0))self.image_labellist[i].configure(image=self.imgt_list[i])self.image_labellist[i].pack(side=LEFT, expand=True)def choose_pic(self, event=None):self.filenames.clear()self.filenames += filedialog.askopenfilenames()def main():window = tk.Tk()GUI = DisplayImage(window)window.title('投影亮度參數(shù)標(biāo)定軟件模塊')window.geometry('1000x600')window.mainloop()if __name__ == '__main__':main()
總結(jié)
以上是生活随笔為你收集整理的Python GUI编程(Tkinter)笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python数据分析·读取CSV文件转为
- 下一篇: OpenCV-Python图像拼接方法