如何在wxPython静态文本小部件中显示插入符号?

如何在wxPython静态文本小部件中显示插入符号?,python,wxpython,wxwidgets,Python,Wxpython,Wxwidgets,以下是我的代码片段: self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m^2/s]') 我想显示插入符号,这样我的静态文本就可以像这样显示:“热扩散率[m^2/s]”。在联机查看后,我尝试这样做: self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m\u20382/s

以下是我的代码片段:

        self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m^2/s]')
我想显示插入符号,这样我的静态文本就可以像这样显示:“热扩散率[m^2/s]”。在联机查看后,我尝试这样做:

        self.diffusivity_label = wx.StaticText(self, label=u'Thermal Diffusivity [m\u20382/s]')
这样做会显示插入符号,但它并没有像我希望的那样升高。相反,文本如下所示:


我现在能做什么?提前感谢您的帮助

如果您希望编写类似以下内容:
m²/s
,可以使用名为
\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()
导入wx
将wx.lib.fancytext作为fancytext导入
类MyFrame(wx.Frame):
定义初始化(自):
wx.Frame.\uuuu init\uuuuu(self,None,title='Superscripting')
self.panel=wx.panel(self)
自面板绑定(wx.EVT_油漆,自面板上油漆)
self.Show()
面板上的def油漆(自身、事件):
dc=wx.PaintDC(自面板)
text=“热扩散率[m^2/s]”
w、 h=fancytext.GetExtent(文本,dc)
RenderToDC(文本,dc,20,20)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=wx.app(假)
frame=MyFrame()
app.MainLoop()

Eh?带有序号94(十六进制中的5e)的ASCII字符呈现为
^
,是完全有效的UTF-8(UTF-8毕竟是7位ASCII的适当超集)。您几乎可以肯定需要Unicode 005E。或者,只需在文本编辑器中键入字符,以UTF-8格式写入文件……您是否正在使用一个小部件集,将
^
视为“下一个字符是热键”的标志?这是一个关于wxWidgets的问题,而不是关于UTF-8的问题。@CharlesDuffy,我刚刚在wxPython中测试了它,
^
wx中没有特殊意义。StaticText
,它显示得很好。嘿@randomir,我想问题可能是我用unicode编写的(注意字符串前面的“u”)。太好了!谢谢你,伙计!