所以我正在制作一个游戏,我使用的是Tkinter和Python2.7,我想把地图数据存储在文件中。我正在尝试创建一个菜单来打开文件并设置为变量。我很难定义要在Tkinter按钮上使用的函数。在
Tkinter窗口打开,但当我单击按钮时,它给出一个错误。在
代码:
#readfiles.py
class maps(object):
def __init__(self):
self.data
def mapset(var):
data = var
fselect = Tk()
...
buttons = Frame(fselect).pack()
Label(fselect, text="Select maps in folder:")
for i in listdir('./maps/'):
if i[-4:] == ".pvm":
Button(buttons, text=i[:-4], command=lambda i=i: mapset(open('./maps/'+i, 'r').read())).pack()
NameError: global name 'mapset' is not defined
另外,我如何访问另一个文件中的data
变量(所以它应该是maps.data
,对不对)?在
AttributeError: type object 'maps' has no attribute 'data'
如果你需要更多的信息,请告诉我。
另外,print "Happy New Years!
下面是一个简单的GUI类,它将映射文件中的数据存储在
self.data
属性中。在为了测试这段代码,我使用Bash命令创建了一组简单的文本文件:
这是python3的代码。要在python2上运行它,只需将Tkinter import语句更改为
import Tkinter as tk
,并在其他import语句之前添加from __future__ import print_function
。在我添加了一个
^{pr2}$"Print data"
,它让我们测试我们是否真正正确地加载了数据。在除非这些地图很大,否则一次存储所有地图可能会更方便。您可以将它们存储在一个列表中,但是最好将它们存储在字典中,使用基名称(减去
'.pvm'
扩展名)作为键。在相关问题 更多 >
编程相关推荐