Python 中的初学者 Tkinter:具有输入的函数
Beginner Tkinter in Python: Functions with Inputs
我想要一个带有两个文本框输入的基本 GUI:一个用于我函数中的每个参数,convert_databases,但我不确定如何传递这些参数(我已经看过一些使用 lambda 的示例,但我无法正确实现它们)。
这是我到目前为止的尝试,主要来自 Tkinter 的原生教程:
from tkinter import *
from tkinter import ttk
def convert_databases(input_file, output_format):
#Function deleted for simplicity
root = Tk()
root.title("Title")
#Formatting
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
#Setting Variables
file = StringVar()
conversion = StringVar()
# Places to enter variables
file_entry = ttk.Entry(mainframe, width=50, textvariable=file)
file_entry.grid(column=2, row=2, sticky=(W, E))
type_entry = ttk.Entry(mainframe, width=50, textvariable=conversion)
type_entry.grid(column=2,row=3, sticky=(W,E))
# Convert Button
ttk.Button(mainframe, text="Convert", command= # Here is where I'm having trouble#)
#Label for the variable 1 input
ttk.Label(mainframe, text="Input file name: ").grid(column=1, row=2, sticky=W)
#Label for the variable 2 input
ttk.Label(mainframe, text="Input file type conversion: ").grid(column=1, row=3, sticky=W)
# This sets the window, I think?
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
# Puts the cursor automatically in the text box
file_entry.focus()
# Runs the thing
root.mainloop()
谢谢!
不要使用字符串变量我也被困在这一次而不是使用入口获取方法
from tkinter import *
from tkinter import ttk
def convert_databases():
global file
global convert
# get the values of entries
file = file_entry.get()
convert = type_entry.get()
root = Tk()
root.title("Title")
#Formatting
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
# Places to enter variables
file_entry = ttk.Entry(mainframe, width=50)
file_entry.grid(column=2, row=2, sticky=(W, E))
type_entry = ttk.Entry(mainframe, width=50)
type_entry.grid(column=2,row=3, sticky=(W,E))
# Convert Button
ttk.Button(mainframe, text="Convert", command= convert_databases
)
#Label for the variable 1 input
ttk.Label(mainframe, text="Input file name: ").grid(column=1, row=2,
sticky=W)
#Label for the variable 2 input
ttk.Label(mainframe, text="Input file type conversion:
").grid(column=1, row=3, sticky=W)
# This sets the window, I think?
for child in mainframe.winfo_children(): child.grid_configure(padx=5,
pady=5)
# Puts the cursor automatically in the text box
file_entry.focus()
# Runs the thing
root.mainloop()
并使用官方术语,例如条目而不是文本框
我想要一个带有两个文本框输入的基本 GUI:一个用于我函数中的每个参数,convert_databases,但我不确定如何传递这些参数(我已经看过一些使用 lambda 的示例,但我无法正确实现它们)。
这是我到目前为止的尝试,主要来自 Tkinter 的原生教程:
from tkinter import *
from tkinter import ttk
def convert_databases(input_file, output_format):
#Function deleted for simplicity
root = Tk()
root.title("Title")
#Formatting
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
#Setting Variables
file = StringVar()
conversion = StringVar()
# Places to enter variables
file_entry = ttk.Entry(mainframe, width=50, textvariable=file)
file_entry.grid(column=2, row=2, sticky=(W, E))
type_entry = ttk.Entry(mainframe, width=50, textvariable=conversion)
type_entry.grid(column=2,row=3, sticky=(W,E))
# Convert Button
ttk.Button(mainframe, text="Convert", command= # Here is where I'm having trouble#)
#Label for the variable 1 input
ttk.Label(mainframe, text="Input file name: ").grid(column=1, row=2, sticky=W)
#Label for the variable 2 input
ttk.Label(mainframe, text="Input file type conversion: ").grid(column=1, row=3, sticky=W)
# This sets the window, I think?
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
# Puts the cursor automatically in the text box
file_entry.focus()
# Runs the thing
root.mainloop()
谢谢!
不要使用字符串变量我也被困在这一次而不是使用入口获取方法
from tkinter import *
from tkinter import ttk
def convert_databases():
global file
global convert
# get the values of entries
file = file_entry.get()
convert = type_entry.get()
root = Tk()
root.title("Title")
#Formatting
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
# Places to enter variables
file_entry = ttk.Entry(mainframe, width=50)
file_entry.grid(column=2, row=2, sticky=(W, E))
type_entry = ttk.Entry(mainframe, width=50)
type_entry.grid(column=2,row=3, sticky=(W,E))
# Convert Button
ttk.Button(mainframe, text="Convert", command= convert_databases
)
#Label for the variable 1 input
ttk.Label(mainframe, text="Input file name: ").grid(column=1, row=2,
sticky=W)
#Label for the variable 2 input
ttk.Label(mainframe, text="Input file type conversion:
").grid(column=1, row=3, sticky=W)
# This sets the window, I think?
for child in mainframe.winfo_children(): child.grid_configure(padx=5,
pady=5)
# Puts the cursor automatically in the text box
file_entry.focus()
# Runs the thing
root.mainloop()
并使用官方术语,例如条目而不是文本框