2012-05-02 5 views
0

私はwxTextCtrlを持っており、カーソルを4つのスペースをタブキーの下に移動させました。しかし、何も入力していなければ、タブを押すとカーソルが動かずテキストも表示されません。Python wxTextCtrlテキストを4つのスペースをタブキーに移動しますか?

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() 

誰もが、私は、カーソルの前にあるものとカーソルの前に任意のテキストを入力いませんでした場合でも、移動するカーソルを取得して私を助けることができれば。

また、入力時に色を変更する特定のキーワードを取得したいと考えています。もし誰かがそれを助けてくれたら、私はとても感謝しています。

答えて

1

は、WRITETEXTを使用してみてください:

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

ブリリアント私は書き込みテキストXD知りませんでした場合。特定の言葉に色を付けることについて何か知っていますか? – SC7639

+0

私は、あなたがリスト内のキーストロークを保存することができ(アルファベット以外のキーの後に更新される)、単語のリストから単語を入力したかどうかを確認することができます。単語がリストにある場合、すでに書かれた文字を削除し、選択した色でもう一度書き直します。 – joaquin

+0

それは私が考えていたものです。また、どのように私はSHIFT + TABボタンが押された4スペースに戻ることができます。私は試してみましたが、e.GetKeyCode()== wx.WXK_TABとwx.WXK_SHIFTを動作させるためにはどうすればよいのでしょうか、いくつかの方法で試しましたが、うまくいきません。 – SC7639

関連する問題