已经花了一段时间寻找答案。我对Python不熟悉,但对一般的编码还不熟悉。发现各种版本相当具有挑战性!在
总之,我非常注重Gui,并设法让tkinter使用python3.5.1
只是玩基本的,有下面的代码,但不能设置第一个输入框的焦点。尝试过mEntry1.focus()和mEntry1.focus_set(),但get object始终没有属性错误。有什么帮助吗?在
from tkinter import *
def calc(*args):
try:
value1 = float(V1.get())
value2 = float(V2.get())
result.set(value1 * value2)
except ValueError:
pass
mGui = Tk()
mGui.geometry('450x450+200+200')
mGui.title('Test Gui')
V1 = StringVar()
V2 = StringVar()
result = StringVar()
mEntry1 = Entry(textvariable=V1,width=10).grid(row=0,column=0,sticky=W)
mEntry2 = Entry(textvariable=V2).grid(row=1,column=0)
mButton = Button(text='Calculate',command=calc).grid(row=3,column=0)
mlabel = Label(textvariable=result).grid(row=4,column=2)
每个Tkinter小部件都有
focus_set
方法。在代码的问题是
.grid
方法返回None
。因此将
^{pr2}$mEntry1
设置为None
,而不是小部件。因此,您需要通过两个步骤创建小部件并将其放入网格中:当然,如果您实际上不需要对widget对象的引用,那么只需一步就可以了。所以有点像
会很好的。在
顺便说一句,使用
from tkinter import *
不是个好主意。它将130多个名称导入到您的命名空间中,这可能导致与您自己的名称或其他模块的名称(如果您还使用“star”import语句导入它们)发生名称冲突。这也使得代码更难阅读。相反,你可以做到然后使用}。在
tk.
前缀引用Tkinter名称,例如tk.Entry
而不是{相关问题 更多 >
编程相关推荐