如何在wxPython静态文本部件中显示脱字符号?
问题描述:
这里是我的代码片段:如何在wxPython静态文本部件中显示脱字符号?
self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m^2/s]')
我想显示插入符号符号,使我的静态文本可以看起来就像这样:“热扩散系数[平方公尺/ S]。”网上通缉后,我试着这样做:
self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m\u20382/s]')
这样做显示插入符号符号,但它并没有升高就像我希望它看起来。相反,文字是这样的:
现在我该怎么办?预先感谢您的帮助!
答
如果您希望编写类似于:m²/s
的文件,可以使用名为SUPERSCRIPT TWO
,\u00b2
的Unicode代码点,代码如下:²
。
所以,你可以说:
self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m\u00b2/s]')
答
的wxPython提供fancytext
小部件非常简单,只是为了这个目的。它提供上标和下标支持以及其他文本样式。以下是使用文字的示例:
import wx
import wx.lib.fancytext as fancytext
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Superscripting')
self.panel = wx.Panel(self)
self.panel.Bind(wx.EVT_PAINT, self.on_panel_paint)
self.Show()
def on_panel_paint(self, event):
dc = wx.PaintDC(self.panel)
text = "Thermal Diffusivity [m<sup>^</sup>2/s]."
w, h = fancytext.GetExtent(text, dc)
fancytext.RenderToDC(text, dc, 20, 20)
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
Eh?带有序号94(十六进制5e)的ASCII字符,呈现为“^”,是完全有效的UTF-8(UTF-8毕竟是7位ASCII的正确超集)。 –
你几乎肯定需要Unicode 005E。或者,只需在用UTF-8编写文件的文本编辑器中输入字符即可。 – tfb
...你可能使用了一个将'^'作为“下一个字符就是热键”的签名的小部件集?这是一个关于wxWidgets的问题,而不是UTF-8。 –