Python网格
在这方面我想请你帮忙 我试图清除一个框架,然后在其中添加新的元素。但是,在清除所有元素后,不会显示添加新元素。请你解释一下我的问题。谢谢 这是我的密码Python网格,python,tkinter,Python,Tkinter,在这方面我想请你帮忙 我试图清除一个框架,然后在其中添加新的元素。但是,在清除所有元素后,不会显示添加新元素。请你解释一下我的问题。谢谢 这是我的密码 #!/usr/bin/env python import Tkinter as tk import socket import sys def next(line, num): s.send(line) data= s.recv(size) num.set(data) class Client(tk.Frame):
#!/usr/bin/env python
import Tkinter as tk
import socket
import sys
def next(line, num):
s.send(line)
data= s.recv(size)
num.set(data)
class Client(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.configHost()
def configHost(self):
self.hostEntry = tk.Entry(self, justify=tk.CENTER);
self.hostLabel = tk.Label(self, text='Host')
self.connectButton = tk.Button(self, text='Connect', command=lambda:self.startServe())
self.hostLabel.grid(row=0, column=0, ipadx=10, ipady=10)
self.hostEntry.grid(row=0, column=1, columnspan=4, pady=20, padx=20, ipadx=5, ipady=5)
self.connectButton.grid(column=2,pady=10)
def startServe(self):
hostnum = self.hostEntry.get()
port = 50000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((hostnum,port))
if s >= 0:
self.grid_forget()
tk.Frame.__init__(self, master=None)
self.grid()
self.nowServingLabel= tk.Label(self, text="Sample")
self.button = tk.Button(self, text='Connect')
self.nowServingLabel.grid()
self.button.grid()
多次调用框架构造函数是非常罕见的。这很可能是你问题的根源。我不知道它在封面下做了什么,但类根本不是为了这样工作而设计的
另外,您是否知道grid_forget只会从视图中删除一个小部件,而不会破坏它?如果您一直“忘记”并重新创建小部件,则会造成内存泄漏。您不应该命名函数
next
,因为它是内置的python函数。请注意。我将把它改名为nextCustomer。谢谢