使用Tkinter Python 2.7:等待按钮被按下并使用返回值作为变量



我已经找了几个小时了,还没有找到任何能做到这一点的东西。也许根本不存在,但我还是想问问。

我是新来的Tkinter。我想做一个按钮让用户选择两个按钮然后用那个按钮执行一个功能。

我把它简化成这样。

import Tkinter as tk
class simpleapp_tk(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.initialize()
    def initialize(self):
        self.grid()
        self.button1 = tk.Button(self, command=self.OnButtonClick1, text="Take",width=15)
        self.button1.grid(column=1,row=9,columnspan=2)
        self.button2 = tk.Button(self, command=self.OnButtonClick2, text="Apples",width=15)
        self.button2.grid(column=3,row=9,columnspan=2)
        self.button3 = tk.Button(self, command=self.OnButtonClick3, text="Bananas",width=7)
        self.button3.grid(column=5,row=9,columnspan=1)
    def OnButtonClick1(self):
        #at this point the program will wait for either Button Apples or
        #Bananas to be pressed and assign it to the variable value
        value = buttonValue
        self.randomFunction(value)
        return
    def OnButtonClick2(self):
        return  "Apples"
    def OnButtonClick3(self):
        return "Bananas"
app = simpleapp_tk()
app.title('my application')
app.mainloop()

在给定输入的情况下,simpleapp_tk中会有其他randomFunction做一些事情,但这并不重要。

是否存在这样的东西,等待用户单击按钮,然后将单击按钮返回的内容存储到变量中?理想情况下,我可以对多个变量这样做。

我会等待用户点击一个按钮,将其存储为第一个变量,然后等待用户点击第二个按钮,将其存储为第二个变量,然后使用这两个变量执行一个函数

通常,您不会让GUI等待,因为它已经处于永久等待状态。单击第一个按钮后,GUI已经在等待您执行其他操作。

如果你想强迫用户按特定的顺序点击东西,常见的解决方案是禁用所有东西,除了他们可以点击的东西。当它们点击时,您可以禁用第一个按钮,启用第二个按钮,依此类推。

有时需要保持一个小的语句机,但通常只需要几个变量。

在您的例子中,您可以使用变量跟踪已点击的内容。字典也许是最简单的方法:

clicked = {1: False, 2: False, 3: False}

OnButtonClick1clicked[1]设置为True,按钮1禁用,按钮2启用,依此类推。

相关内容

  • 没有找到相关文章

最新更新