【问题标题】:add multiple buttons in tkinter(image converter)在 tkinter(图像转换器)中添加多个按钮
【发布时间】:2021-08-05 12:40:20
【问题描述】:

我尝试构建这个多合一的图像转换器(基本上它只是 png、jpg、jpeg、webp),它应该让用户选择图像并将其转换为上述给定格式之一(一个在一次)。但是,当我尝试运行它时,只显示 getImage() & last func 按钮,中间的那个被跳过了。 output

import tkinter as tk
from tkinter import filedialog
from PIL import Image

root = tk.Tk()

canvas1 = tk.Canvas(root, width = 300, height = 500, bg = 'azure3', relief = 'raised')
canvas1.pack()

label1 = tk.Label(root, text = 'File Conversion Tool', bg = 'azure3')
label1.config(font = ('helvetica', 20))
canvas1.create_window(150, 60, window = label1)


def getImage():
    global im1

    import_file_path = filedialog.askopenfilename()
    im1 = Image.open(import_file_path)


browseButton_Image = tk.Button(text = " Import Image/File ", command = getImage, bg = 'royalblue', fg = 'white',
                             font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 130, window = browseButton_Image)

def convertToPNG():
    global im1
    export_file_path = filedialog.asksaveasfilename(defaultextension = '.png')
    im1.save(export_file_path)


saveAsButton_PNG = tk.Button(text = 'Convert to PNG', command = convertToPNG, bg = 'royalblue', fg = 'white',
                             font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window = saveAsButton_PNG)

def convertToJPG():
    global im1
    export_file_path = filedialog.asksaveasfilename(defaultextension = '.jpg')
    im1.save(export_file_path)


saveAsButton_JPG = tk.Button(text = 'Convert to JPG', command = convertToJPG, bg = 'royalblue', fg = 'white',
                             font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window = saveAsButton_JPG)

def convertToJPEG():
    global im1
    export_file_path = filedialog.asksaveasfilename(defaultextension = '.jpeg')
    im1.save(export_file_path)


saveAsButton_JPEG = tk.Button(text = 'Convert to JPEG', command = convertToJPEG, bg = 'royalblue', fg = 'white',
                             font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window = saveAsButton_JPEG)

def convertToWebP():
    global im1
    export_file_path = filedialog.asksaveasfilename(defaultextension = '.webp')
    im1.save(export_file_path)


saveAsButton_WebP = tk.Button(text = 'Convert to WebP', command = convertToWebP, bg = 'royalblue', fg = 'white',
                             font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window = saveAsButton_WebP)

root.mainloop()

【问题讨论】:

  • 最后四个按钮的 x,y 位置相同。 150,180 。除了重叠之外,您还期望什么
  • 你能告诉我我应该为每个单独的按钮保留什么 x,y 位置,以使其可行。
  • 检查我的答案

标签: python python-3.x tkinter image-conversion tkinter-button


【解决方案1】:

从代码看,最后 4 个按钮的 x、y 位置相同:150, 180。结果,4 个按钮重叠了。从前 2 个按钮看,您的按钮的 y 位置增加了 50。因此,在每个前一个按钮的 y 位置添加 50。

saveAsButton_PNG = tk.Button(text = 'Convert to PNG', command = convertToPNG, bg = 'royalblue', fg = 'white', font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 180, window = saveAsButton_PNG)

...

saveAsButton_JPG = tk.Button(text = 'Convert to JPG', command = convertToJPG, bg = 'royalblue', fg = 'white', font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 230, window = saveAsButton_JPG)

...

saveAsButton_JPEG = tk.Button(text = 'Convert to JPEG', command = convertToJPEG, bg = 'royalblue', fg = 'white', font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 280, window = saveAsButton_JPEG)

...

saveAsButton_WebP = tk.Button(text = 'Convert to WebP', command = convertToWebP, bg = 'royalblue', fg = 'white',font = ('helvetica', 12, 'bold'))
canvas1.create_window(150, 330, window = saveAsButton_WebP)

...

root.mainloop()

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 2019-02-14
    • 1970-01-01
    • 2023-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2021-11-23
    相关资源
    最近更新 更多