Tkinter Text 위젯을 읽기 전용으로 만드는 방법

  1. Tkinter Text 를 읽기 전용으로 만들려면 Text State 를 disable 로 설정하십시오
  2. Tkinter Text 를 읽기 전용으로 만들기 위해 키 누름을 break 기능에 바인딩

Tkinter Text 위젯을 읽기 전용으로 만드는 방법을 소개합니다.

  1. Text 상태를 disable로 설정하십시오
  2. 키를 누르면 break기능에 바인딩됩니다.

Tkinter Text 를 읽기 전용으로 만들려면 Text State 를 disable 로 설정하십시오

Text 위젯은 상태가 disable로 설정되면 읽기 전용이됩니다.

import tkinter as tk
root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.configure(state='disabled')
readOnlyText.pack()

root.mainloop()

Text 위젯의 기본 상태는 NORMAL이며, 이는 사용자가 텍스트 내용을 편집, 추가, 삽입 또는 편집 할 수 있음을 의미합니다.

readOnlyText.configure(state='disabled')

읽기 전용으로 만들려면 Text 위젯 상태를 DISABLED 로 변경해야합니다. 해당 위젯 내에서 텍스트를 변경하려는 시도는 자동으로 무시됩니다.

경고

Text 위젯 컨텐츠를 업데이트하려면 상태를 disabled 에서 normal 로 변경해야합니다. 그렇지 않으면 읽기 전용으로 유지됩니다.

Tkinter Text 를 읽기 전용으로 만들기 위해 키 누름을 break 기능에 바인딩

breakText 위젯으로 리턴하는 함수에 키 스트로크를 바인딩하면 Text 가 읽기 전용이되는 것과 동일한 결과를 얻을 수 있습니다.

import tkinter as tk
root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.bind("<Key>", lambda a: "break")
readOnlyText.pack()

root.mainloop()
주의

이 솔루션과 위의 솔루션의 차이점은 CTRL+C 가 작동하지 않는다는 것입니다. 내용을 편집하거나 복사 할 수 없음을 의미합니다.

CTRL+C 를 원한다면 CTRL+C 를 제외하고 Text 에 바인딩하는 함수를 제외해야합니다.

import tkinter as tk

def ctrlEvent(event):
    if(12==event.state and event.keysym=='c' ):
        return
    else:
        return "break"

root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.bind("<Key>", lambda e: ctrlEvent(e))
readOnlyText.pack()

root.mainloop()

관련 문장 - Tkinter Text

  • Tkinter 텍스트 상자에서 입력을 얻는 방법
  • 버튼으로 Tkinter Text 위젯의 텍스트를 설정하는 방법
  • 관련 문장 - Tkinter

  • Tkinter 텍스트 상자의 내용을 삭제하는 방법