【问题标题】:TextCtrl widget crashing in linuxTextCtrl小部件在Linux中崩溃
【发布时间】:2014-09-23 06:58:53
【问题描述】:

我使用下面的代码sn-p,它在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")

我正在使用红帽企业 Linux。是否可以用其他小部件替换 TextCtrl 小部件,是否有任何用于 TextCtrl 的自定义小部件?

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

提前致谢。

【问题讨论】:

  • 当它崩溃时你得到什么回溯?
  • 对于其他小部件,请查看 wxPython 演示。
  • 你能否展示一个独立的示例应用程序,它会在运行时显示问题。
  • 谢谢....由于 AppendText 的分段错误而崩溃,所以我没有使用 AppendText,而是使用了 SetValue 方法,它解决了崩溃问题

标签: python wxpython wxwidgets


【解决方案1】:

我在我的 Kubuntu 14.04 机器上使用 wxPython 2.8.12 和 Python 2.7.6 测试了您的代码,它运行良好。请参阅以下示例:

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()

【讨论】:

  • 它在 AppendText 处因分段错误而崩溃,所以我没有使用 AppendText,而是使用了 SetValue 方法,它解决了崩溃问题
  • 我的代码崩溃了还是你的?您的消息变量实际上是文本吗?
猜你喜欢
  • 2013-04-05
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
相关资源
最近更新 更多