我在Windows 7 32位计算机上使用Python v2.7,wxPython v3.0。
在我的应用中,我想显示&
符号。
问题:如果我尝试显示此特定&
符号,我的程序会立即崩溃。可以毫无问题地显示所有其他符号。
以下是示例代码:
# -*- 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
答案 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字符。