0
我在制作一个程序来模拟一个控制台。这是到目前为止我的代码(我现在就开始吧,学习Tkinter的,虽然我不知道,如果Tkinter的最佳选择):Python 3.4 Tkinter - 对象没有属性
from tkinter import *
class App:
def __init__(self, master):
self.frame = Frame(master, bg = 'black')
self.bottomframe = Frame(master, bg = 'black')
self.elabel = Label(master, text = '>', bg = 'black', font = 'system', fg = 'white')
self.einput = Entry(master, bd =0, bg = 'black', font = 'system', fg = 'white', command = self.update_text())
# Packing
self.frame.pack()
self.bottomframe.pack(side = BOTTOM)
self.elabel.pack(side = LEFT)
self.einput.pack(side = LEFT)
def update_text(self):
self.einput.insert(0, '>')
root = Tk()
app = App(root)
root.mainloop()
的错误是
Traceback (most recent call last):
File "C:/Users/*/PycharmProjects/ConsoleDungeon/game.py", line 21, in <module>
app = Game(root)
File "C:/Users/*/PycharmProjects/ConsoleDungeon/game.py", line 9, in __init__
self.einput = Entry(master, bd =0, bg = 'black', font = 'system', fg = 'white', command = self.update_text())
File "C:/Users/*/PycharmProjects/ConsoleDungeon/game.py", line 17, in update_text
self.einput.insert(0, '>')
AttributeError: 'Game' object has no attribute 'einput'
还有一件事:在线路
self.einput = Entry(master, bd =0, bg = 'black', font = 'system', fg = 'white', command = self.update_text())
我不知道如何使用命令说法。
从你的'command'参数去掉括号,这将解决这两个错误 – 2014-09-10 15:17:10
输入构件没有一个命令参数?你确定你不是指validatecommand? – 2014-09-10 15:20:10