簡體   English   中英

如何從 tkinter 條目小部件中提取輸入? (Python tkinter)

[英]How to extract input from tkinter entry widget? (Python tkinter)

在 Insert() 函數中,我無法從入口小部件中提取數據(我在 database() 函數中使用了 .get 來提取數據,並且數據存儲在表中,然后可以通過 Print() 函數打印)。 我還使用了 .set 作為下拉菜單 wh

這是我輸入的

這是我的輸出

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()

你可以像這樣全局化你的入口小部件

global entry_1

那么你可以在任何函數中使用 entry_1.get() 而不是使用 textvariables

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM