日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python GUI编程(Tkinter)笔记

發(fā)布時(shí)間:2024/10/8 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。