Python Tkinter의 항목 또는 입력 필드에서 텍스트를 희미하게 만들고 비활성화하는 방법

Daniyal Ahmad |

나는 백그라운드에서 텍스트 종류를 비활성화하려고합니다. 하지만 사용자가 비활성화하면 텍스트를 쓸 수 없습니다.

이미 누군가가 질문을했지만 그 대답은 분명하지 않았고 만족스럽지 않았습니다. 그래서 저는이 질문을 게시하기로 결정했습니다.

텍스트가 대부분의 웹 사이트 로그인 페이지에있는 입력 필드와 유사하기를 원합니다. 여기서 '사용자 이름'또는 '비밀번호'와 같은 일부 텍스트가 이미 입력 필드에 기록되어 있습니다.

따라서 텍스트가 약간 희미하고 사용자가 입력을 시작하면 텍스트가 사라집니다. 따라서 사용자는 복사 할 수 없어야하며 입력하기 전에 제거 할 필요가 없습니다.

이것은 내가 시도한 것이지만 작동하지 않았습니다.

from tkinter import *
root = Tk()

my_entry = Entry(root, width=50)
my_entry.pack()
my_entry.insert(0, "Enter Your Name")
my_entry.configure(state=DISABLED)

root.mainloop()

사용자는 입력 필드에 텍스트를 쓸 수도 없습니다.

current_panda

도움이 되나요?

from tkinter import *
root = Tk()

my_entry = Entry(root, width=50)
my_entry.pack()
my_entry.insert(0, "Enter Your Name")
my_entry.configure(state=DISABLED)

def on_click(event):
    my_entry.configure(state=NORMAL)
    my_entry.delete(0, END)

    # make the callback only work once
    my_entry.unbind('<Button-1>', on_click_id)

on_click_id = my_entry.bind('<Button-1>', on_click)

root.mainloop()

클래스로서 :

import tkinter as tk

class DefaultEntry(tk.Entry):
    def __init__(self, master=None, default_text='', **kw):
        super().__init__(master, **kw)
        self.insert(0, default_text)
        self.configure(state=tk.DISABLED)
        self.on_click_id = self.bind('<Button-1>', self.on_click)

    def on_click(self, _):
        self.configure(state=tk.NORMAL)
        self.delete(0, tk.END)

        # unregister myself
        self.unbind('<Button-1>', self.on_click_id)

root = tk.Tk()

my_entry = DefaultEntry(root, width=50, default_text='Enter your Name')
my_entry.pack()

root.mainloop()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관