找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3434|回复: 1

[求助] wxpython窗口运行循环程序无响应是怎么回事?

1

主题

2

帖子

2

积分

贫民

积分
2
tjtltjtl 发表于 2017-11-13 21:45:12 | 显示全部楼层 |阅读模式
用wxpython做gui窗口想做一个类似飞秋的小程序,能够发消息,但是不知道如何把代码嵌入到wxpython,把方法绑定到按钮上后点击按钮,窗口就无响应了,如果把代码直接嵌入程序则窗口就不显示了,高手帮我看看,谢谢!

import socket
import wx
import wx.xrc

def conn(EVENT):
    s=socket.socket()
    host=socket.gethostname()
    port=1234
    s.bind((host,port))
    s.listen(5)
    while True:
        c,addr=s.accept()
        while True:
            data=c.recv(1024)
            print '接收数据:'+data
    c.close()
    s.close()


class MyFrame1(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"接收", pos=wx.DefaultPosition, size=wx.Size(334, 244),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(200, 100),
                                       wx.HSCROLL | wx.TE_MULTILINE | wx.TE_READONLY)
        self.m_textCtrl1.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))

        bSizer1.Add(self.m_textCtrl1, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.m_button1 = wx.Button(self, wx.ID_ANY, u"启动", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer1.Add(self.m_button1, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
        self.m_button1.Bind(wx.EVT_BUTTON,conn)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

    def __del__(self):
        pass


app=wx.App()
frame=MyFrame1(None)
frame.Show(True)
app.MainLoop()
上述代码点击“启动”窗口就无响应了。

回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
tjtltjtl  楼主| 发表于 2017-11-14 14:27:17 | 显示全部楼层
我查阅了相关资料,看来这方面资料还是很少有人会提及。我这种遇到的问题应该是程序中的循环影响了窗口循环的的执行,导致要不就是窗口运行不正常,要不就是方法运行不正常,解决方法是使用多线程来解决此问题,GUI与方法进程隔离,各干个的就不会相互影响了,这个解决方法不只适用于wxpython,也适用于其他GUI。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表