如何在按钮前使用 tkinter-python 添加文本框,当我单击它们时,结果应显示在添加的文本框中
How can I add text boxes using tkinter-python in front of the buttons that when I click them, the results should be displayed on the added text boxes
我在 python 中使用 Tkinter-python 开发了一个简单的应用程序,其中 select 图像导航任何包含图像的文件夹。方法 1 和 2 按钮有两个不同的功能,可以分析来自 folder/path 的 selected 图像。我想在方法 1 和 2 的前面添加两个文本框,这样当我单击方法 1 时,结果应该打印在方法 1 之后添加的文本框 1 上,同样在第二个按钮上。如果可能的话,添加一个功能,selects 来自 'Select Image' 按钮路径的图像将被确认。假设方法 1 是将图像从 RGB 转换为灰色的函数,方法二是将 RGB 图像二值化的函数。
以下是构建应用程序的一些代码。
from tkinter import *
from PIL import Image,ImageTk
from tkinter import filedialog
class application(Tk):
def __init__(self,parent):
Tk.__init__(self,parent)
self.parent = parent
self.minsize(width=500,height=500)
self.initialize()
def initialize(self):
self.grid_columnconfigure(0,weight=1)
self.grid_columnconfigure(1,weight=1)
#Button widgets
###########################################################################################
self.button1 = Button(self,text='Button1',width=10,height=2)
self.button1.grid(column=0,row=0,sticky='W',pady=5)
self.button2 = Button(self,text='Result1',width=10,height=2)
self.button2.grid(column=1,row=3,sticky='E',pady=5)
self.button3 = Button(self,text='Result2',width=10,height=2)
self.button3.grid(column=1,row=4,sticky='E',pady=5)
self.button4 = Button(self,text='Exit',width=10,height=2,command=self.destroy)
self.button4.grid(column=0,row=3,sticky='W',pady=5)
#Text widget for inserting results
############################################################################################
self.text1 = Text(self,height=20,width=60,state=NORMAL)
self.text1.grid(column=1,row=2,sticky='W',padx=5)
#Label widget
############################################################################################
self.label1 = Label(self,text="Window",width=10,height=2,anchor="w")
self.label1.grid(column=1,row=0,sticky='E',padx=5)
if __name__ == "__main__":
app = application(None)
#font.nametofont('TkDefaultFont').configure(size=10)
app.title("John's work")
app.mainloop()
上面代码生成的应用程序如下图所示
预期的如下
tkinter
有一个名为 Toplevel
的 class,您可能会发现它很有用。它很像一个 Tk
对象,除了它可以有一个作为父对象。很多人将 Toplevel
用于弹出窗口之类的东西。在您的情况下,可以定义一个函数来创建显示文本的弹出窗口,如下例所示:
from tkinter import *
def create_popup(parent, message):
window = Toplevel(parent)
label = Label(window, text = message)
label.pack()
button = Button(window, text = "Ok", command = window.destroy)
button.pack()
window.mainloop()
root = Tk()
temp = lambda: create_popup(root, "Hello")
button = Button(root, text = "Click me", command = temp)
button.pack()
root.mainloop()
如果您事先用 Tk.geometry()
决定了主要 window 的位置和大小,您可以轻松地在您提到的按钮旁边制作弹出窗口。这意味着可以调整上面的代码片段:
from tkinter import *
def create_popup(parent, message, configuration):
window = Toplevel()
window.geometry(configuration)
label = Label(window, text = message)
label.pack()
button = Button(window, text = "Ok", command = window.destroy)
button.pack()
window.mainloop()
root = Tk()
root.geometry("200x200+100+100")
temp = lambda: create_popup(root, "Hello", "50x50+350+100")
button = Button(root, text = "Click me", command = temp)
button.pack()
root.mainloop()
希望对您有所帮助!
我在 python 中使用 Tkinter-python 开发了一个简单的应用程序,其中 select 图像导航任何包含图像的文件夹。方法 1 和 2 按钮有两个不同的功能,可以分析来自 folder/path 的 selected 图像。我想在方法 1 和 2 的前面添加两个文本框,这样当我单击方法 1 时,结果应该打印在方法 1 之后添加的文本框 1 上,同样在第二个按钮上。如果可能的话,添加一个功能,selects 来自 'Select Image' 按钮路径的图像将被确认。假设方法 1 是将图像从 RGB 转换为灰色的函数,方法二是将 RGB 图像二值化的函数。 以下是构建应用程序的一些代码。
from tkinter import *
from PIL import Image,ImageTk
from tkinter import filedialog
class application(Tk):
def __init__(self,parent):
Tk.__init__(self,parent)
self.parent = parent
self.minsize(width=500,height=500)
self.initialize()
def initialize(self):
self.grid_columnconfigure(0,weight=1)
self.grid_columnconfigure(1,weight=1)
#Button widgets
###########################################################################################
self.button1 = Button(self,text='Button1',width=10,height=2)
self.button1.grid(column=0,row=0,sticky='W',pady=5)
self.button2 = Button(self,text='Result1',width=10,height=2)
self.button2.grid(column=1,row=3,sticky='E',pady=5)
self.button3 = Button(self,text='Result2',width=10,height=2)
self.button3.grid(column=1,row=4,sticky='E',pady=5)
self.button4 = Button(self,text='Exit',width=10,height=2,command=self.destroy)
self.button4.grid(column=0,row=3,sticky='W',pady=5)
#Text widget for inserting results
############################################################################################
self.text1 = Text(self,height=20,width=60,state=NORMAL)
self.text1.grid(column=1,row=2,sticky='W',padx=5)
#Label widget
############################################################################################
self.label1 = Label(self,text="Window",width=10,height=2,anchor="w")
self.label1.grid(column=1,row=0,sticky='E',padx=5)
if __name__ == "__main__":
app = application(None)
#font.nametofont('TkDefaultFont').configure(size=10)
app.title("John's work")
app.mainloop()
上面代码生成的应用程序如下图所示
预期的如下
tkinter
有一个名为 Toplevel
的 class,您可能会发现它很有用。它很像一个 Tk
对象,除了它可以有一个作为父对象。很多人将 Toplevel
用于弹出窗口之类的东西。在您的情况下,可以定义一个函数来创建显示文本的弹出窗口,如下例所示:
from tkinter import *
def create_popup(parent, message):
window = Toplevel(parent)
label = Label(window, text = message)
label.pack()
button = Button(window, text = "Ok", command = window.destroy)
button.pack()
window.mainloop()
root = Tk()
temp = lambda: create_popup(root, "Hello")
button = Button(root, text = "Click me", command = temp)
button.pack()
root.mainloop()
如果您事先用 Tk.geometry()
决定了主要 window 的位置和大小,您可以轻松地在您提到的按钮旁边制作弹出窗口。这意味着可以调整上面的代码片段:
from tkinter import *
def create_popup(parent, message, configuration):
window = Toplevel()
window.geometry(configuration)
label = Label(window, text = message)
label.pack()
button = Button(window, text = "Ok", command = window.destroy)
button.pack()
window.mainloop()
root = Tk()
root.geometry("200x200+100+100")
temp = lambda: create_popup(root, "Hello", "50x50+350+100")
button = Button(root, text = "Click me", command = temp)
button.pack()
root.mainloop()
希望对您有所帮助!