带删除线的wxPython RichTextCtrl

带删除线的wxPython RichTextCtrl,python,wxpython,strikethrough,richtextctrl,Python,Wxpython,Strikethrough,Richtextctrl,我想在wxPython的RichTextCtrl中设置带删除键的文本。但找不到任何方法,如通过开始trikethrough或通过设置trikethrough 是否可以在RichTextCtrl中应用罢工?怎么做 编辑1: Font带有穿透性标志,与beginont和EndFont一起使用,不产生穿透性效果 import wx import wx.richtext as rt class MyFrame(wx.Frame): def __init__(self): wx.

我想在
wxPython
RichTextCtrl
中设置带删除键的文本。但找不到任何方法,如
通过
开始trikethrough
通过
设置trikethrough

是否可以在
RichTextCtrl
中应用罢工?怎么做

编辑1:

Font
带有穿透性标志,与
beginont
EndFont
一起使用,不产生穿透性效果

import wx
import wx.richtext as rt

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, 1, 'Testing strike-through')
        rtc = rt.RichTextCtrl(self, -1)
        rtc.WriteText("normal text")
        rtc.Newline()

        font = wx.FFont(12, wx.FONTFAMILY_DEFAULT, face='Tahoma', flags=wx.FONTFLAG_STRIKETHROUGH)
        rtc.BeginFont(font)
        rtc.WriteText("This is strike-through")
        rtc.EndFont()

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()
输出:

  • 您可以将
    font.setStriketThrough(True)
    wxpython2.9.4或更高版本一起使用,请参阅

  • 否则:使用
    font.SetNativeFontInfoFromString(str)
    设置带有本机信息描述的标志

  • 请检查以下字符串以查看差异,仅在windows中测试:

    不带删除线的描述:0-16;0;0;0;400;0;0;<代码>0
    ;1.0;0;2.32;塔荷马

    删除线描述:0-16;0;0;0;400;0;0;<代码>1
    ;1.0;0;2.32;塔荷马

    代码:


    您可以使用文本效果,这也适用于wxPython 2.8.12:

    style = rt.TextAttrEx()
    style.SetFlags(rt.TEXT_ATTR_EFFECTS)
    style.SetTextEffects(rt.TEXT_ATTR_EFFECT_STRIKETHROUGH)
    style.SetTextEffectFlags(rt.TEXT_ATTR_EFFECT_STRIKETHROUGH)
    rtc.BeginStyle(style)
    rtc.WriteText("This is strike-through")
    rtc.EndStyle()
    

    (在Linux上测试)

    我没有看到这个功能,但它确实有一个
    beginnot
    功能,所以你可以创建一个带有删除线的字体,并以这种方式使用它。嗨@CorleyBrigman,我试过
    beginnot
    EndFont
    但没有执行删除线效果。请参阅问题中的编辑1。我自己并没有实际使用过它,但下面似乎有另一个答案是有效的。是的@CorleyBrigman,它对我100%有效:)Thnx@Jerry_Y,你提供的其他方法对我非常有效。我正在使用wxPython2.8,因此它非常棒,我不需要升级到2.9或更高版本。。thnx再次:)
    style = rt.TextAttrEx()
    style.SetFlags(rt.TEXT_ATTR_EFFECTS)
    style.SetTextEffects(rt.TEXT_ATTR_EFFECT_STRIKETHROUGH)
    style.SetTextEffectFlags(rt.TEXT_ATTR_EFFECT_STRIKETHROUGH)
    rtc.BeginStyle(style)
    rtc.WriteText("This is strike-through")
    rtc.EndStyle()