有没有办法将tkinter Entry()输入字段(小部件中的字段)移动到第一个位置(或自定义位置)?

例如,我有这样的代码:

import tkinter as tk

root = tk.Tk()

tk.Label(root, text='Example Entry:').grid(row=0, column=0, pady=(50, 5))
entry = tk.Entry(root)
entry.grid(row=1, column=0, padx=50, pady=(5, 50))

entry.bind('<Return>', lambda _: root.focus())
tk.mainloop()

运行代码后,我将打开一个带有条目的tk窗口.

然后,我在这个条目中输入一些字符(example image #1).在输入字段用完空间后,它将隐藏前面的字符(example image #2).在示例图像2中,隐藏了前面的字符(abcdef).

所以我的问题是,每当我按Enter时,如何将该字段移动到第一个位置(或任何自定义位置)?

我try 使用entry.icursor(0),但它只将插入光标移动到第一个位置,而不是整个字段.我也在谷歌上搜索了一些,但当然,没有任何信息.这就是我最终来到这里的原因.

Expectation:.

推荐答案

您可以使用xview方法调整数据的视图.如果可能,您传递的索引将被移到小部件的左边缘.你也应该把这一点与打icursor的电话结合起来.最后,我建议返回字符串"Break",这样就不会处理默认绑定.这真的无关紧要,但如果您的意图是更改默认行为,则这是一个最佳实践.

import tkinter as tk

root = tk.Tk()
entry = tk.Entry(root)
entry.pack(fill="x", expand=True)

def go_to_beginning(event):
    entry.icursor(0)
    entry.xview(0)
    return "break"

entry.bind("<Return>", go_to_beginning)

tk.mainloop()

Python相关问答推荐

列表上值总和最多为K(以O(log n))的最大元素数

如何使用Google Gemini API为单个提示生成多个响应?

从webhook中的短代码(而不是电话号码)接收Twilio消息

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

如何比较numPy数组中的两个图像以获取它们不同的像素

无法通过python-jira访问jira工作日志(log)中的 comments

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

梯度下降:简化要素集的运行时间比原始要素集长

未知依赖项pin—1阻止conda安装""

如何在PySide/Qt QColumbnView中删除列

pandas:对多级列框架的列进行排序/重新排序

python panda ExcelWriter切换动态公式到数组公式

使用Openpyxl从Excel中的折线图更改图表样式

如何在Python中使用Iscolc迭代器实现观察者模式?

Python Mercury离线安装

如何在验证文本列表时使正则表达式无序?

为什么在Python中00是一个有效的整数?

分解polars DataFrame列而不重复其他列值

按列表分组到新列中

来自任务调度程序的作为系统的Python文件