Tkinter Text 위젯을 읽기 전용으로 만드는 방법
-
Tkinter
Text
를 읽기 전용으로 만들려면Text
State 를disable
로 설정하십시오 -
Tkinter
Text
를 읽기 전용으로 만들기 위해 키 누름을break
기능에 바인딩
Tkinter Text 위젯을 읽기 전용으로 만드는 방법을 소개합니다.
Text
상태를disable
로 설정하십시오- 키를 누르면
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
기능에 바인딩
break
만 Text
위젯으로 리턴하는 함수에 키 스트로크를 바인딩하면 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()
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook