2012-05-30 15 views

答えて

9

テキストウィジェットを無効にしてみましたか?

text_widget.bind("<1>", lambda event: text_widget.focus_set()) 

をあなたがウィジェットを無効にした場合:

text_widget.configure(state="disabled") 

いくつかのプラットフォームで、あなたもそうでない場合はコピーのハイライトが表示されない、ウィジェットにフォーカスを与えることを<1>に拘束を追加する必要があります、あなたは、単にNORMAL

  • Iに

    1. 変更するには、ウィジェットの状態を必要とするプログラム的に挿入しますその後、テキスト、および
    2. 変更nsert状態が戻ってDISABLED

    に限り、あなたはそれの真ん中にupdateを呼び出さないよう、ユーザーが対話的に何も入力できるようにするための方法はありません。

  • +0

    はい、私は持っていますが、ドキュメントによれば、それは関数などからでも何かを入力できません。 –

    +0

    @PsychicOak:もちろん。しかし、プログラムで挿入するには、状態を「通常」に設定し、テキストを挿入し、状態を「無効」にリセットするだけです。私はその情報を含めるために私の答えを更新しました。 –

    +0

    * sigh *今私は愚かだと感じる>。>笑、ありがとう!あなたはxDを受け入れることができるときにあなたのポイントを得るでしょう –

    1

    申し訳ありません私はパーティーに遅れていますが、このページではあなたと同じソリューションを探していました。

    デフォルトでTextウィジェットを無効にしてから、それを入力して機能の最後にもう一度「無効」にする機能の冒頭で「通常」にすると、

    def __init__(): 
        self.output_box = Text(fourth_frame, width=160, height=25, background="black", foreground="white") 
        self.output_box.configure(state="disabled") 
    
    def somefunction(): 
        self.output_box.configure(state="normal") 
        (some function goes here) 
        self.output_box.configure(state="disable") 
    
    0

    私はstate = "normal"/state = "disabled"解決策にも遭遇しましたが、テキストを選択してコピーすることができません。最後に、以下の解決策を見つけました:Is there a way to make the Tkinter text widget read only?このソリューションでは、テキストを選択してコピーし、ハイパーリンクをたどることができます。

    import Tkinter 
    
    root = Tkinter.Tk() 
    readonly = Tkinter.Text(root) 
    readonly.bind("<Key>", lambda e: "break") 
    
    関連する問題