繁体   English   中英

我想在tkinter中调用另一个class。我有2个类,我不能在我的window下面调用数据库class class

[英]I want to call another class in tkinter. i have 2 classes and i can't call the database class below my window class

我是 tkinter 的新手,我才开始研究 Tkinter,我有 2 个班级,我正在尝试调用一个 class,我已经在我的 window class 下完成了它。它给了我一个类型错误 database_basket,9851818283 的名称不可调用。 有人可以给我提示吗?

这是我面临的问题

class Window3:

    def __init__(self, master):
        self.master = master
        self.master.title("Payment")
        self.master.geometry("1500x800")
        self.frame = Frame(self.master)
        self.frame.pack()

        self.customer_basket = Database_Basket() # Calling the class below
        self.customer_basket.connection()


    def insert_data(self):
        if len(self.prod_id_var.get()) != 0:
            self.customer_basket(self.prod_id_var.get(), self.prod_name_var.get(), self.prod_qty_var.get(),self.prod_price_var.get())
            self.basket_listbox.delete(0, END)
            self.basket_listbox.insert(END, self.prod_id_var.get(), self.prod_name_var.get(), self.prod_qty_var.get(),self.prod_price_var.get())


class Database_Basket:

    def connection(self):
        print("Database is now connected")
        db_conn = sqlite3.connect("basketinfo.db")
        cursor = db_conn.cursor()
        my_query = "create table if not exists tblbasket(product_id integer primary key, prod_name text, quantity text, price text) "
        cursor.execute(my_query)
        db_conn.commit()
        db_conn.close()
        print("Database connection is finished")

    def data_entry(self, prod_id, prod_name, quantity, price):
        print("Data Entry Method is called")
        connection = sqlite3.connect("basketinfo.db")
        cursor = connection.cursor()
        insert_query = "insert into tblbasket value(?,?,?,?)"
        cursor.execute(insert_query, (prod_id, prod_name, quantity, price))
        connection.commit()
        connection.close()
        print("Data Entry Method is finished")

你是想调用 data_entry:

self.customer_basket.data_entry(self.prod_id_var.get(), self.prod_name_var.get(), self.prod_qty_var.get(),self.prod_price_var.get())

我认为这一行:

self.customer_basket(....)

应该:

self.customer_basket.data_entry(.....)

您正在尝试调用实例,而您应该在其中调用 data_entry 方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM