我在主頁面中新建了子行程用來處理資料,想法是:子行程收到特定資料,主頁面彈出一個frame,但是始終報錯。不在子行程中就可以正確執行新建視窗陳述句
class MainFrame(wx.Frame):
def recv(self):
while True:
data = server.recv(1024).decode('utf-8')
print('thread recv:' + data)
action = data[data.find('/---/---/') + 9:data.find('/---/---/') + 11]
if action == '03':
user = eval(data[data.find('/---/---/03') + 11:])
self.userlist.Set(user)
elif action == '04':
from_user = data[data.find('/---/---/04') + 11:data.find('/***/***/')]
server.sendall(('/---/---/05' + name_main + '/***/***/' + from_user).encode('utf-8'))
chatting.append(from_user)
# 下面兩條注釋掉的陳述句執行時必報錯
# self.chat_frame = ChatFrame(from_user)
# self.chat_frame.Show()
elif action == '05':
message_queues.append(data)
def __init__(self):
wx.Frame.__init__(self, None, -1, self.hello() + name_main, size=(300, 500), style=wx.DEFAULT_FRAME_STYLE)
panel = wx.Panel(parent=self)
wx.MessageBox(name_main + ',' + self.hello())
self.userlist = wx.ListBox(panel, -1, size=(100, 300), choices=user, style=wx.LB_SINGLE)
self.button = wx.Button(panel, -1, "Chat")
self.Bind(wx.EVT_BUTTON, self.chat_click, self.button)
self.text_1 = wx.StaticText(panel, -1, '在線用戶串列')
vbox1 = wx.BoxSizer(wx.VERTICAL)
vbox1.AddMany([(self.text_1, 0, wx.TOP | wx.CENTER, 25), (self.userlist, 0, wx.ALL | wx.CENTER, 25), (self.button, 0, wx.CENTER)])
panel.SetSizer(vbox1)
threading.Thread(target=self.recv, args=()).start()
錯誤提示如下:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260761.html
上一篇:請大家指點一下如何將scrapy和django融合在一起
下一篇:自動問卷出錯是怎么回事呢?
