将文本从函数传递给gui

时间:2015-11-12 22:42:35

标签: python-2.7 user-interface tkinter

我在'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?

1 个答案:

答案 0 :(得分:0)

您可以使用lambda将更多参数传递给button命令。 而不是

command = self.on_button

您可以使用

command = lambda: self.on_button(fil)

通过' fil'到on_button函数。 这是你的想法吗?

相关问题