【问题标题】:Python wxTextCtrl move text 4 spaces on tab key down?Python wxTextCtrl将tab键上的文本移动4个空格?
【发布时间】:2012-05-12 10:16:41
【问题描述】:

我有一个 wxTextCtrl,我让光标在 tab 键上向下移动 4 个空格。但是,如果我没有输入任何内容,那么当我按下 Tab 键时,光标不会移动,文本也不会移动。

self.editor = wx.TextCtrl(splitter, style = wx.TE_MULTILINE)
wx.EVT_KEY_DOWN(self.editor, self.on_key_down)

def on_key_down(self, e):
    if e.GetKeyCode() == wx.WXK.TAB:
        current = self.editor.GetInsertionPoint()
        tab = current + 4
        self.editor.SetInsertionPoint(tab)
    else:
        e.Skip()

如果有人可以帮助我移动光标,即使我没有在光标前面输入任何内容,也没有在光标前面输入任何文本。

我还想在输入时让某些关键词改变颜色。如果有人能提供帮助,我将不胜感激。

【问题讨论】:

    标签: python wxpython wxtextctrl


    【解决方案1】:

    尝试使用 WriteText:

    def on_key_down(self, e):
        if e.GetKeyCode() == wx.WXK_TAB:
            tab = ' ' * 4
            self.editor.WriteText(tab)
        else:
            e.Skip()
    

    【讨论】:

    • 如果我不知道写文本 XD,那就太好了。你知道给某些单词上色吗?
    • 我可以想象你可以将你的击键保存在一个列表中(在每个非字母键之后刷新)并检查你是否从单词列表中输入了一个单词。如果单词在列表中,则删除已写入的字符并用选定的颜色重新写入。
    • 我就是这么想的。另外,我怎么能让它在按下 SHIFT + TAB 按钮时返回 4 个空格。如果 e.GetKeyCode() == wx.WXK_TAB 和 wx.WXK_SHIFT 工作,我已经尝试但无法弄清楚如何获得,我尝试了几种不同的方法,但它不会工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多