簡體   English   中英

按下Tkinter時,輸入框文本清晰

[英]Entry box text clear when pressed Tkinter

我不確定是否已經問過這個問題,但是我有多個輸入框,其中包含一段默認文本。 我沒有嘗試設置默認文本,我試圖在單擊輸入框時刪除。 我希望能夠在單擊輸入框后立即刪除默認文本,這樣用戶就不必這樣做了。 我想知道是否有人可以分享一個關於如何完成這個的快速示例,以便我可以實現。

    def removeValue(event):
        self.entry.delete(0, 'end')
        return None

    for i in range(1, numberOfStudents + 1):
        for p in range(0,2):
            self.entry = Entry(self.master)
            if p == 0:
                self.entry.insert(0, 'Enter name of student')
                self.entry.place(x = 10, y = (i * 30) + 26)
                self.entry.bind("<Button-1>", removeValue)
            if p == 1:
                self.entry.insert(0, 'Enter predicted')
                self.entry.place(x = (getWidth(master) - 140), y = (i * 30) + 26)
                self.entry.bind("<Button-1>", removeValue)

到目前為止我有這個,但只刪除最后一個輸入框文本。

假設你已經整理了你的默認文本,你想在某處創建一個Event綁定,使用上面評論的一般格式,不知道為什么它不是答案,因為它是正確的:

import tkinter as tk

root = tk.Tk()
e = tk.Entry(root)
e.insert(0, "some text")

def some_callback(event): # note that you must include the event as an arg, even if you don't use it.
    e.delete(0, "end")
    return None

e.bind("<Button-1>", some_callback)

e.pack()

最后, http//effbot.org是您的朋友: http//effbot.org/tkinterbook/tkinter-events-and-bindings.htm

編輯:來自評論的OP的附加信息。 如果您有多個條目並且需要單獨清除每個條目,則可以簡單地引用調用綁定方法的小組件

event.widget

您的回調可以按如下方式工作:

def some_callback(event):
    event.widget.delete(0, "end")
    return None

事件綁定調用的方法被賦予一個事件對象。 此對象引用了觸發事件的窗口小部件。 您可以使用它來清除小部件:

def removeValue(event):
    event.widget.delete(0, 'end')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM