在 Tkinter 的 Entry 小部件中更改光标的位置
tkinter 中用于输入显示单行文本的小部件称为输入小部件。您是否在 tkinter 中创建了一个包含大量信息的条目小部件?是否有大量文本导致您在其中的任何其他位置移动时出现问题?别担心,我们有办法解决这个问题。您需要做的只是设置一个按钮,单击该按钮后会将您带到条目小部件中的所需位置。
所需步骤:
步骤1:首先,导入库tkinter。
from tkinter import *
第 2 步:现在,使用 tkinter 创建一个 GUI 应用程序。
app = Tk()
第 3 步:然后,创建一个参数为 None 的函数,以将光标移动到条目小部件中您想要的任何位置。
def shift_cursor(event=None):
position = entry_label.index(INSERT)
entry_label.icursor(#Specify the position \
where you want to move the cursor)
第 4 步:接下来,创建并显示要更改位置的条目小部件。
entry_label=Entry(app)
entry_label.grid(column=#Specify the column value,
row=#Specify the row value,
padx=#Specify the padding value of x,
pady=#Specify the padding value of y)
第 5 步:一旦声明了入口小部件,将焦点设置为指定的入口小部件。
entry_label.focus()
第 6 步:此外,创建并显示一个按钮,单击该按钮将更改输入小部件中光标的位置。
button1 = Button(app,
text="#Text you want to display in button",
command=shift_cursor)
button1.grid(column=#Specify the column value,
row=#Specify the row value,
padx=#Specify the padding value of x,
pady=#Specify the padding value of y)
第 7 步:最后,进行无限循环以在屏幕上显示应用程序。
app.mainloop()
例子:
在这个程序中,我们将改变通过点击按钮“移光标离开”,而通过点击按钮改变光标一个字符右位置的光标左侧的一个字符的位置“光标右移”。
Python
# Python program to change position
# of cursor in Entry widget
# Import the library tkinter
from tkinter import *
# Create a GUI app
app = Tk()
# Create a function to move cursor one character
# left
def shift_cursor1(event=None):
position = entry_label.index(INSERT)
# Changing position of cursor one character left
entry_label.icursor(position - 1)
# Create a function to move the cursor one character
# right
def shift_cursor2(event=None):
position = entry_label.index(INSERT)
# Changing position of cursor one character right
entry_label.icursor(position + 1)
# Create and display the button to shift cursor left
button1 = Button(app, text="Shift cursor left", command=shift_cursor1)
button1.grid(row=1, column=1, padx=10, pady=10)
# Create and display the button to shift the cursor right
button2 = Button(app, text="Shift cursor right", command=shift_cursor2)
button2.grid(row=1, column=0, padx=10, pady=10)
# Create and display the textbox
entry_label = Entry(app)
entry_label.grid(row=0, column=0, padx=10, pady=10)
# Set the focus in the textbox
entry_label.focus()
# Make the infinite loop for displaying the app
app.mainloop()
输出: