Как извлечь вход из виджета записи tkinter? (Python ткинтер) - PullRequest
0 голосов
/ 29 марта 2020

В функции Insert () я не могу извлечь данные из виджетов ввода (я использовал функцию .get в базе данных () для извлечения данных, и данные затем сохраняются в таблице, а затем их можно распечатать функцией Print ()). , Я также использовал .set для выпадающего меню, где

This is what I enter

This is my output

from tkinter import *
import sqlite3

    def Print():
        conn = sqlite3.connect('Form.db')
        with conn:
            cursor=conn.cursor()
        cursor = conn.execute("SELECT Fullname, Regnum, state FROM car")
        print("Employee Details")
        for value in cursor:
            print("Name: "+str(value[0]))
            print("Registration no.: "+value[1])
            print("State: "+value[2])
            print()

    def database():
        name1=Fullname.get()
        regnum=Regnum.get()
        state=c.get()
        conn = sqlite3.connect('Form.db')
        with conn:
            cursor=conn.cursor()
        cursor.execute('CREATE TABLE IF NOT EXISTS car (Fullname TEXT,Regnum TEXT,state TEXT)')
        cursor.execute('INSERT INTO car (FullName,Regnum,state) VALUES(?,?,?)',(name1,regnum,state,))
        conn.commit()

    def Insert():
        root=Tk()

        fm = Canvas(root, width = 500, height = 500, bg="red")
        label_0 = Label(root, text="Registration form",width=20,font=("bold", 20))
        label_0.place(x=90,y=53)


        label_1 = Label(root, text="FullName",width=20,font=("bold", 10))
        label_1.place(x=80,y=130)

        entry_1 = Entry(root,textvar=Fullname)
        entry_1.place(x=240,y=130)

        label_2 = Label(root, text="Registration Number",width=20,font=("bold", 10))
        label_2.place(x=68,y=180)

        entry_2 = Entry(root,textvar=Regnum)
        entry_2.place(x=240,y=180)

        label_4 = Label(root, text="state",width=20,font=("bold", 10))
        label_4.place(x=70,y=280)

        list1 = ['Maharashtra','Punjab','Haryana','Karnataka','West Bengal','Tamil Nadu'];

        droplist=OptionMenu(root,c, *list1)
        droplist.config(width=15)
        c.set('select your state')
        droplist.place(x=240,y=280)

        Button(root, text='Submit',width=20,bg='brown',fg='white',command=database).place(x=180,y=430)
        fm.pack()
        root.mainloop()

top = Tk()
menu = Menu(top)
top.geometry('500x500')

Fullname=StringVar()
Regnum=StringVar()
c=StringVar()

top.config(menu=menu)

insertmenu=Menu(menu,tearoff=0)
menu.add_cascade(label="Insert", menu=insertmenu)
insertmenu.add_command(label="Insert", command=Insert)

printmenu=Menu(menu,tearoff=0)
menu.add_cascade(label="Print", menu=printmenu)
printmenu.add_command(label="Print", command=Print)

fm = Frame(top, width = 500, height = 500, bg="red")

head = Label(top, text='      Vehicle Registration Form      ', font=("Arial", 15), bg="#90d2d8")
head.place(x=0,y=10)
fm.pack()

mainloop()

1 Ответ

0 голосов
/ 29 марта 2020

вы можете использовать глобальный виджет ввода как

global entry_1

, тогда вы можете использовать entry_1.get () в любой функции вместо использования textvariables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...