如何从tkinter GUI中的下拉列表中将参数传递给函数

时间:2018-01-22 07:29:22

标签: python tkinter

我有一个功能

def hist(x):
plotly.offline.plot( {
'data' : [{
    'type' : 'histogram',
    'x' : data[x],
}],
"layout": Layout(title=x)
})

hist("price")#function call

代替价格我希望用户在tkinter gui的下拉列表中选择其他选项,它应该在函数调用中更新如何继续。

以及如何为适合所有窗口的tkinter窗口设置背景图像,而不管窗口的尺寸如何。

1 个答案:

答案 0 :(得分:0)

这可以使用来自tkinter的OptionMenu小部件来完成。

基本上我们需要做的就是初始化OptionMenu窗口小部件,然后将其命名为StringVar变量。

from tkinter import *

root = Tk()

def command():
    print(var.get())

var = StringVar(root)
var.set("Price")

option = OptionMenu(root, var, "Price", "Foo", "Bar")
option.pack()

button = Button(root, text="Ok", command=command)
button.pack()

root.mainloop()

以上内容将创建OptionMenuButton,并在每次按下OptionMenu时打印Button的值。

一旦你理解了这里的基本概念,你就可以开始了解"幻想" 输入信息的方式。

我们可以在trace变量上设置StringVar并使用它来检测OptionMenu何时更新,这意味着我们会在程序中获得自动响应而无需用户从下拉列表中选择一些东西后按下按钮。

from tkinter import *

root = Tk()

def command(*args):
    print(var.get())

var = StringVar(root)
var.set("Price")

option = OptionMenu(root, var, "Price", "Foo", "Bar")
option.pack()

var.trace("w", command)

root.mainloop()