我在'test_gui.py'文件中有一个GUI功能,该文件改编自Bryan Oakley关于从Tkinter输入框中获取文本的问题的答案。
import sys
import os
import Tkinter as tk
class testing(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.label1 = tk.Label(self, text = "Enter benchmark version")
self.label2 = tk.Label(self, text = "Enter test_suite (a for all)")
self.label3 = tk.Label(self, text = "Enter sub_suite t or w")
self.entry1 = tk.Entry(self)
self.entry2 = tk.Entry(self)
self.entry3 = tk.Entry(self)
self.button = tk.Button(self, text="Get", command=self.on_button)
self.button.grid(row = 4, column = 0)
self.label1.grid(row = 1, column = 0)
self.label2.grid(row = 2, column = 0)
self.label3.grid(row = 3, column = 0)
self.entry1.grid(row = 1, column = 1)
self.entry2.grid(row = 2, column = 1)
self.entry3.grid(row = 3, column = 1)
def on_button(self):
benchmark = self.entry1.get()
test_suite = self.entry2.get()
sub_suite = self.entry3.get()
home_path=os.path.dirname(os.path.abspath(__file__))
path = os.path.join(home_path, sub_suite, 'results')
sys.path.insert(0, path)
import compare_data as compare
compare.compare_results(benchmark, test_suite)
self.label4 = tk.Label(self, text=fil)
self.button2.grid(row = 5, column = 10)
app = testing()
app.mainloop()
我需要从一个不同的函数传递它'fil',该函数在按下按钮后通过函数compare_results运行。在这个函数中我得到了:
import test_gui
test_gui.testing(fil)
要做到这一点,我想我需要将on_button定义为
def on_button(self, fil)
但是这会返回on_button需要两个参数的错误。如果我给fil一个默认值,它会在按下按钮时将其传递给标签。
有没有办法将文本从函数运行通过gui传递回gui?
答案 0 :(得分:0)
您可以使用lambda将更多参数传递给button命令。 而不是
command = self.on_button
您可以使用
command = lambda: self.on_button(fil)
通过' fil'到on_button函数。 这是你的想法吗?