TextCtrl小部件在linux中崩溃

时间:2014-09-23 06:58:54

标签: python wxpython wxwidgets

我正在使用下面的代码片段,它在Windows操作系统中正常工作,但是当进入linux时,它正在以分段错误结束。

self.textMessage = wx.TextCtrl(self, -1, '', style=wx.TE_MULTILINE|wx.TE_READONLY)
self.hSizer2.Add(item=self.textMessage, proportion=1, flag=wx.EXPAND|wx.ALL, border=3)
self.vSizer.Add(item=self.hSizer2, proportion=1, flag=wx.EXPAND|wx.ALL, border=0)
self.textMessage.AppendText(message+" \n")

我正在使用redhat enterprise linux。是否可以用其他小部件替换TextCtrl小部件,是否有任何TextCtrl的自定义小部件?

如果我在上面的代码中遗漏任何内容以避免崩溃问题,也请告诉我

提前致谢。

1 个答案:

答案 0 :(得分:0)

我使用wxPython 2.8.12和Python 2.7.6在我的Kubuntu 14.04盒子上的一个实际可运行的例子中测试了你的代码,它运行得很好。请参阅以下示例:

import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)

        self.vSizer = wx.BoxSizer(wx.VERTICAL)
        self.hSizer2 = wx.BoxSizer(wx.HORIZONTAL)

        message = "The bright red fox"
        self.textMessage = wx.TextCtrl(self, -1, '', style=wx.TE_MULTILINE|wx.TE_READONLY)
        self.hSizer2.Add(item=self.textMessage, proportion=1, flag=wx.EXPAND|wx.ALL, border=3)
        self.vSizer.Add(item=self.hSizer2, proportion=1, flag=wx.EXPAND|wx.ALL, border=0)
        self.textMessage.AppendText(message+" \n")

        self.SetSizer(self.vSizer)

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Test")
        panel = MyPanel(self)

        self.Show()

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()