程序在显示'&' wxPython中的符号

时间:2014-08-21 13:19:22

标签: python wxpython

我在Windows 7 32位计算机上使用Python v2.7,wxPython v3.0。 在我的应用中,我想显示&符号。

问题:如果我尝试显示此特定&符号,我的程序会立即崩溃。可以毫无问题地显示所有其他符号。

crash-screenshot

以下是示例代码

# -*- coding: utf-8 -*-
import wx
class mainClass(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Test v1.0", style = wx.DEFAULT_FRAME_STYLE,size=(400,300))
        mainPanel = wx.Panel(self, -1)
        wx.StaticText(mainPanel, -1, u'\x25')# This is '%' symbol
        wx.StaticText(mainPanel, -1, u'\x26')# This is '&' symbol

if __name__=='__main__':
    app = wx.App()
    frame = mainClass().Show()
    app.MainLoop()

如果你注释掉这个wx.StaticText(mainPanel, -1, u'\x26'),那么程序运行正常。

问题:这可能是什么原因?如果有人可以在他/她的系统上测试这个并报告回来,我真的很感激!感谢。

引用unicode符号表。 http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=0x

1 个答案:

答案 0 :(得分:1)

此代码在Kubuntu 14.04 64位,wxPython 2.8.12和Python 2.7上运行。但是,您没有指定两个StaticText小部件的位置,因此它们只是堆叠在一起。你应该指定他们的位置或使用sizer。

此外,如果您只想显示&符号(“&”),那么您可以这样做:

import wx
class mainClass(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Test v1.0", style = wx.DEFAULT_FRAME_STYLE,size=(400,300))
        mainPanel = wx.Panel(self, -1)

        wx.StaticText(mainPanel, -1, "&&")# This is '&' symbol

if __name__=='__main__':
    app = wx.App()
    frame = mainClass().Show()
    app.MainLoop()

无需将unicode规范用于常规ASCII字符。