我被指派在大学里为我的python课做一个项目,我们应该为商店做一个程序,但我一直在与tkinter有一些问题。我已经完成了一个主菜单,用户可以在那里注册为买家,并且还可以购买。我完成了注册窗口,但是我需要按钮不仅可以运行我已创建的另一个功能,该功能可以保存用户在列表中输入的数据,还可以销毁窗口。有没有办法让按钮运行2个命令? 这是我所拥有的一个例子:
def get_data(l):
l.append(box1.get())
l.append(box2.get())
l.append(box3.get())
l.append(box4.get())
def register():
global box1
global box2
global box3
global box4
#code defining window and each label and each input box
botonA= Button(registerwindow, text = "accept",command=lambda: get_data(mylist), width=5)
botonA.grid(row=0,column=2)
如何指定按钮不仅可以运行get_data函数,还可以关闭窗口?
我的第二个问题是如何在tkinter中打开或导入文件,我已经搜索过,我得到的是如何让用户打开文件,在我们的程序中,我们已经编辑了包含所需信息的文件,我们只需要获取和使用这些文件中的数据(商店中的商品,有多少库存,价格等),有没有办法导入文件而无需用户选择它?
感谢。 (对不起,如果我没有发布任何代码,我的大多数变量和东西都是西班牙语,所以我尽量避免翻译,但如果你们需要样本,我会很乐意递送)
答案 0 :(得分:0)
只需将您想要destroy()
的窗口的引用作为函数的参数传递:
def mywindow():
topwindow = Toplevel()
button = Button(topwindow, text='ok', command=lambda: okbutton(topwindow, mylist))
def okbutton(widget, l):
l.append('hello world')
widget.destroy()
至于在不要求用户选择文件的情况下打开文件,您只需对其中的值进行硬编码,而不是使用input()
之类的内容:
# filename = input('filename? ')
filename = 'input_data.txt'
with open(filename, 'r') as f:
pass # process file