帮助解决聊天室Python应用问题
我现在正在用Python制作一个聊天应用程序。我有两个独立的代码,一个是服务器端的,另一个是客户端的。服务器的代码负责接收新连接的客户端的登录信息,并在另一个线程中处理它需要接收和发送的消息。
客户端的应用程序是用一个类来实现的,运行得很好,只是当脚本请求显示用户界面时,弹出的窗口却是空的:
def __init__(self, master):
self.nr=0
self.frameul=self.tbox=self.txt=self.scrollbar=self.button=self.roottk=[0]*20
self.OameniSiIduri={}
self.LoginUI(master)
self.framestate=""
def ChatUI(self, peer_id):
no=self.no
self.no+=1
self.PeoplesAndId[peer_id]=no
self.base[no]=Toplevel()
self.theframe[no] = Frame(self.base[no])
self.theframe[no].pack()
self.entry[no] = Entry(self.theframe[no], width=95)
self.tbox[no] = Text(self.theframe[no], state=DISABLED, wrap=WORD)
self.button[no] = Button(self.theframe[no], text="Send", fg="green", command=lambda x=self.entry[no].get(), y=peer_id, z=self.tbox[nr]: self.Sendmsg(x,y,z), width=10)
self.tbox[no].pack(side=TOP, fill=X)
self.button[no].pack(side=RIGHT)
self.entry[no].pack(side=LEFT)
.....
所有的变量和函数都已经声明了。有没有人能给我一点提示,可能是什么原因导致这个问题呢?
2 个回答
0
我猜,负责创建用户界面的代码可能出错了,但你没有看到这个错误。比如说,你有没有正确导入 DISABLED
和 WORD
呢?如果没有,代码可能在创建窗口后出错,但在创建其他小部件之前就停止了,这样你就只会看到一个空的小部件。
调试这个问题的一种方法是给每个顶层窗口和框架设置不同的颜色。这样你就能看到哪些是可见的,哪些是不可见的——也许你正在看一个窗口或框架,以为它是某个东西,其实它可能是别的东西。
0
我昨晚通宵查代码,终于发现了我的错误。显然,如果我使用这一行代码:
self.theframe=self.tbox=self.entry=self.scrollbar=self.button=self.base=[0]*20
那么所有的对象都会指向同一个值。