I am using the focus method to set an entry with focus in Tkinter for Python, but is not working the script is as follows:
#-*- 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()
I am trying to direct the focus to the txtQty Entry widget, but I am getting the following error message:
AttributeError: 'None Type' object has no attribute 'focus"
Thanks in advance!