gpt4 book ai didi

Python 获取焦点条目名称

转载 作者:太空狗 更新时间:2023-10-30 02:30:18 26 4
gpt4 key购买 nike

我试图在按下向上或向下箭头键时增加或减少输入值。为此,我需要首先找到焦点所在的条目,我正在尝试执行“.focus_get()”。问题是我无法弄清楚它是如何工作的或者它返回了什么。它为每个条目返回 1 个唯一编号,例如:“.45191744”,但每次运行程序时此编号都会更改。以下数字是运行代码时的最后 5 次尝试。“.50518728”“.53009096”“.55889592”“.51891896”

如何获取焦点条目的变量名?

这是我的代码:

def get_focus1(event):
print("return: event.widget is", event.widget)
print("focus is:", window2.focus_get())
print(window2.focus_get())
print(help(window2.Entry))

window2 = Tk()

eyear1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for year
eyear1.insert(10, defaultYear)
eyear1.grid(row=1, column=1)

emonth1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for Month
emonth1.insert(10, defaultMonth)
emonth1.grid(row=1, column=2)

eday1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for day
eday1.insert(10, defaultDay)
eday1.grid(row=1, column=3)

window2.bind('<Left>', get_focus1)

mainloop()

最佳答案

focus_get 返回实际对象。 假设您有充分的理由不使用 textvariable (请参阅 Bryan 的评论),您想做的是清除文本并重新写入新值(做一些验证显然)。你最终得到的是这样的:

from tkinter import *

def up(event):
# warning, exceptions can happen
old = int(event.widget.get()) # this gives back the actual object!
event.widget.delete(0, END) # delete existing text
event.widget.insert(10, old + 1) # put new text in

def down(event):
# warning, exceptions can happen
old = int(event.widget.get()) # this gives back the actual object!
event.widget.delete(0, END) # delete existing text
event.widget.insert(10, old - 1) # put new text in

window2 = Tk()

eyear1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for year
eyear1.insert(10, 2015)
eyear1.grid(row=1, column=1)

emonth1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for Month
emonth1.insert(10, 1)
emonth1.grid(row=1, column=2)

eday1 = Entry(window2, width=4, font=("Helvetica", 16)) # Entry for day
eday1.insert(10, 10)
eday1.grid(row=1, column=3)

# bind both keys to corresponding event handlers
window2.bind('<Up>', up)
window2.bind('<Down>', down)
mainloop()

关于Python 获取焦点条目名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com