Tkinter for Python中的Focus方法不起作用

Tkinter for Python中的Focus方法不起作用,python,tkinter,focus,Python,Tkinter,Focus,我正在使用focus方法在Tkinter for Python中设置一个具有focus的条目,但不起作用。脚本如下所示: #-*- coding: utf-8 -*- from tkinter import * from tkinter import ttk import sqlite3 def agregar(): def erase(): eNom.set(fieldvalues[0]) eQty.set("") eUnit.set

我正在使用focus方法在Tkinter for Python中设置一个具有focus的条目,但不起作用。脚本如下所示:

#-*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk
import sqlite3

def agregar():
    def erase():
        eNom.set(fieldvalues[0])
        eQty.set("")
        eUnit.set("")
        ePrice.set("")
        total = 0
        txtTotal = ttk.Label(frame, text=total, width=20).grid(column=4, row=1, sticky=E)
        txtQty.focus()

    getQty = eQty.get()
    quantity = float(getQty)
    getNom = eNom.get()
    cur.execute("SELECT field_nom, field_unit, field_price FROM Products WHERE field_nom = ?;", (getNom, ))
    for nom, unit, price in cur:
        unit = unit
        price = price

    total = quantity * price
    total = str(total)
    eUnit = StringVar()
    txtUnit = ttk.Entry(frame, textvariable=eUnit, width=15).grid(column=2, row=1)
    eUnit.set(unit)
    ePrice = StringVar()
    txtPrice = ttk.Entry(frame, textvariable=ePrice, width=20).grid(column=3, row=1)
    ePrice.set(price)
    txtTotal = ttk.Label(frame, text=total, width=20).grid(column=4, row=1, sticky=E)

    ttk.Button(frame, text="OK", command=erase).grid(column=2, row=2)

main = Tk()
main.title("Y que aparece")
main.geometry("+50+100")
frame = ttk.Frame(main, padding=(3, 3, 12, 12), relief="raised")
frame.grid(column=0, row=0, sticky=(N, S, E, W))

conn = sqlite3.connect("prueba.sqlite3")
cur = conn.cursor()

ttk.Label(frame, text="Qty").grid(column=0, row=0)
ttk.Label(frame, text="Product").grid(column=1, row=0)
ttk.Label(frame, text="Unit").grid(column=2, row=0)
ttk.Label(frame, text="Price").grid(column=3, row=0)
ttk.Label(frame, text="Total").grid(column=4, row=0)

eQty = StringVar()
txtQty = ttk.Entry(frame, textvariable=eQty, width=10).grid(column=0, row=1)
eNom = StringVar()
fieldvalues = list()
cur.execute("SELECT field_id, field_nom FROM Products")
for fid, fnom in cur:
    fieldvalues.append(fnom)
ttk.Combobox(frame, values=fieldvalues, textvariable=eNom, width=30).grid(column=1, row=1, sticky=W)
eNom.set(fieldvalues[0])

ttk.Button(frame, text="Agregar", command=agregar).grid(column=3, row=2)
ttk.Button(frame, text="Salir", command=main.destroy).grid(column=1, row=2)

main.mainloop()
我试图将焦点指向txtQty条目小部件,但收到以下错误消息:

AttributeError:“无类型”对象没有属性“焦点”

提前谢谢

txtQty = ttk.Entry(frame, textvariable=eQty, width=10).grid(column=0, row=1)
txtQty
为无,因为这是
grid
的返回值

在单独的行上执行赋值和网格划分

txtQty = ttk.Entry(frame, textvariable=eQty, width=10)
txtQty.grid(column=0, row=1)

非常感谢Kevir!效果很好!