#python #sqlite #user-interface #tkinter #tk
#python #sqlite #пользовательский интерфейс #tkinter #тз
Вопрос:
Я новичок в tkinter, и я только начал работать над Tkinter, и у меня есть 2 класса, я пытаюсь вызвать класс, который я сделал прямо под моим классом window. он выдает мне ошибку типа database_basket , имя класса невозможно вызвать. может кто-нибудь дать мне подсказку?
Это проблема, с которой я сталкиваюсь
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")
Комментарии:
1. Пожалуйста, не публикуйте изображения ошибок. Изображения недоступны для поиска, а слабовидящие вообще не могут их видеть. Кроме того, ваш код выглядит неправильно отформатированным.
2. Это не говорит вам, что вы не можете вызвать класс , это говорит вам, что вы не можете вызвать экземпляр класса.
3. Извините, я впервые задаю вопрос. В следующий раз я обязательно добавлю более понятную картинку. Спасибо за разъяснение.
Ответ №1:
Вы хотели вызвать 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())
Ответ №2:
Я думаю, что эта строка :
self.customer_basket(....)
должно быть :
self.customer_basket.data_entry(.....)
Вы пытаетесь вызвать экземпляр, где, как вы должны вызывать метод data_entry .