簡體   English   中英

在 Tkinter 條目中隱藏文本 Cursor

[英]Hide Text Cursor in Tkinter Entry

所以我正在使用 Tkinter 條目,我想知道是否有辦法在條目中隱藏文本 cursor。 這只是我創建的一個示例條目(現在看起來很可怕):

在此處輸入圖像描述

此條目中的文本 cursor 非常清晰可見,即使我單擊屏幕上的其他位置,它也會繼續閃爍。 有沒有辦法手動隱藏 Tkinter 中的 cursor? 我無法找到有關該主題的任何文章,所以這甚至可能嗎?

以下是在 tkinter 中創建條目的代碼:

from tkinter import *

top = Tk()

E1 = Entry(top, bd=5)
E1.pack(side=RIGHT)
E1.focus_set()

top.mainloop()

所以這會引發同樣的問題,我如何隱藏文本 cursor? 這段代碼也沒有 output 我給出的圖像,因為它是用 goopylib 制作的,goopylib 是我在 Tkinter 之上制作的圖形框架。 因此,對於整個代碼,您可以看到https://github.com/BhavyeMathur/goopylib/blob/master/goopylib/objects/Entry.py這是我使用的程序:

from goopylib.imports import *

window = GraphWin("Test Window", width=110, height=110)
Entry(Point(55, 55), text_width=10).draw(window)

while True:
    update(24)

要運行此代碼,您需要安裝 goopylib,您可以使用:

pip install goopylib

當小部件具有焦點時,cursor 可見,這對於用戶在小部件中鍵入時很重要。

如果您不想要 cursor,記錄的方法是將 state 設置為“只讀”。 從規范文檔中:

如果該條目是只讀的,那么即使輸入焦點在小部件中,也不能使用小部件命令更改該值並且不會插入 cursor 將顯示 小部件的內容仍可能被選中。

問題也可能只是當您單擊某處時,“其他地方”並非旨在獲取鍵盤焦點。 如果您調整綁定以使您單擊的內容獲得焦點,則焦點將從條目小部件中移除,並且 cursor 將被隱藏,直到焦點恢復。

例如,如果您要在 canvas 上創建項目,則可以創建綁定以在單擊時將焦點移動到 canvas:

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

當您單擊 canvas 時,焦點將移至 canvas 並遠離條目,因此條目將不再顯示 cursor。

要在輸入框(稱為插入光標)上隱藏 cursor,我們可以使用輸入框的參數,例如:

Entry(top,insertontime=0,bd=5)

使用E1.focus_set()將在應用程序開始時將焦點設置到輸入框,除非您單擊離開。

隱藏Entry Widget的Blinking Cursor,非常簡單。

Entry(root,
      insertontime=0,
)

暫無
暫無

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

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