2017-07-25 35 views
2

这里是我的代码片段:如何在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]') 

这样做显示插入符号符号,但它并没有升高就像我希望它看起来。相反,文字是这样的:

enter image description here

现在我该怎么办?预先感谢您的帮助!

+1

Eh?带有序号94(十六进制5e)的ASCII字符,呈现为“^”,是完全有效的UTF-8(UTF-8毕竟是7位ASCII的正确超集)。 –

+0

你几乎肯定需要Unicode 005E。或者,只需在用UTF-8编写文件的文本编辑器中输入字符即可。 – tfb

+0

...你可能使用了一个将'^'作为“下一个字符就是热键”的签名的小部件集?这是一个关于wxWidgets的问题,而不是UTF-8。 –

回答

3

如果您希望编写类似于:m²/s的文件,可以使用名为SUPERSCRIPT TWO,\u00b2的Unicode代码点,代码如下:²

所以,你可以说:

self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m\u00b2/s]') 
+0

完美!谢谢老兄! – Aang

+0

不客气! – randomir

0

的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() 
相关问题