我正在使用python / tkinter中的一个简单的基于文本的游戏,并进行了基本的设置。它显示了介绍。文本,然后您可以键入(这仍然是一项正在进行的工作)。但是,我意识到会有很多文本,并想到了框架的滚动条功能。
但是,我将当前内容添加到一个框架中,功能现在不起作用。我跟随某人的榜样,所以我不知道它是否正确。这是代码:
from Tkinter import *
w=Tk()
w.configure(background="navy")
w.iconbitmap(default="blankIcon.ico")
w.title("Decimated world")
w.resizable(0,0)
introText="When you wake, you see that the sky is dark; you can't tell the time of day."
scen1="You head toward the Town hall."
class App(Frame):
def __init__(self,w):
Frame.__init__(self,w)
def key(event):
print event.char
t=Text(w)
t.insert(INSERT,introText)
t.configure(state=DISABLED,background="navy",foreground="white")
t.pack()
def do_command(command):
t.configure(state=NORMAL)
t.insert(INSERT,'\n>>> {}'.format(command))
t.configure(state=DISABLED)
s=StringVar()
e=Entry()
e.configure(background="navy",foreground="white")
e.focus_set()
e.pack(side=BOTTOM)
def enter(event):
do_command(e.get())
if e.get()=="walk north":
t.configure(state=NORMAL)
t.insert(INSERT,"\n"+scen1)
t.configure(state=DISABLED)
e.bind("<KeyRelease-Return>",enter)
w.mainloop()
我很感激任何人帮助将现有的功能/小部件放入框架中。感谢。
答案 0 :(得分:0)
只要文本有名称,您就可以使用pack和unpack方法。
例如:
b = Label(root, text='Click Me')
b.pack()
然后删除它:
b.pack_forget()
然后当您想再次添加时,只需输入:
b.pack()
就这么简单!