Мне нужно знать, как я могу обновить текст метки, не создавая новое окно.У меня есть следующий код, но когда я пытаюсь изменить метку output_box
на выходную переменную, определенную в import_csv()
, я получаю ошибку 'function' object has no attribute 'output_box'
.
Извините за избыточный код, но у меня действительно естьПонятия не имею, что является причиной проблемы.
import Tkinter as tk
import sqlite3
class main_window:
def __init__(self,output):
global Initialising
if Initialising == True:
Initialising = False
root = tk.Tk()
self.startup(root)
root.mainloop()
else:
self.Update(output)
def startup(self,master):
self.master = master
self.master.title("SQL Managment GUI")
self.master.geometry("665x500")
self.master.configure(background = "#42b9f4")
self.output_frame = tk.Frame(self.master , background = "#42b9f4", padx= 5, pady=5)
self.output_label = tk.Label(self.output_frame, background = "#42b9f4", fg='#000000', text = "OUTPUT", width = 50)
self.output_label.grid(column = 0, row=0)
self.output_box = tk.Label(self.output_frame, background = "#ffffff", fg='#000000', width = 50, height = 30,wraplength= 45 ,text = "")
self.output_box.grid(column = 0, row=1)
self.output_frame.grid(column = 0 , row = 0)
self.side_frame = tk.Frame(self.master , background = "#42b9f4",padx = 10, pady = 200)
self.info_label = tk.Label(self.side_frame, background = "#42b9f4", fg='#000000', text = "IMPORTANT INFO")
self.info_label.grid(column = 0 , row = 0)
self.import_button = tk.Button(self.side_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "IMPORT", width = 15 , command = self.open_import)
self.import_button.grid(sticky= "n", column = 0, row=1)
self.update_button = tk.Button(self.side_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "UPDATE", width = 15 , command = self.open_update)
self.update_button.grid(sticky= "n", column = 1, row=1)
self.create_button = tk.Button(self.side_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "NEW RECORD", width = 15 , command = self.open_New_record)
self.create_button.grid(sticky= "n", column = 0, row=2)
self.delete_button = tk.Button(self.side_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "DELETE", width = 15 , command = self.open_delete)
self.delete_button.grid(sticky= "n", column = 1, row=2)
self.query_button = tk.Button(self.side_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "QUERY", width = 31)
self.query_button.grid(sticky= "n", column = 0, row=3 ,columnspan=2)
self.side_frame.grid(column = 1 , row = 0)
def Update(self,output):
self.output = output
self.startup.output_box.config(text = self.output)
class Import:
def __init__(self,master):
self.master = master
self.master.title("IMPORT CSV")
self.master.geometry("285x200")
self.master.configure(background = "#42b9f4")
self.import_frame = tk.Frame(self.master , background = "#42b9f4",pady=5)
self.import_name = tk.Label(self.import_frame, text = "FILE TO BE IMPORTED (incl file extension)", background = "#42b9f4", fg='#000000', width = 30)
self.import_name.grid(column = 0, row=0)
self.import_name_entry = tk.Entry(self.import_frame, text = "", background = "#ffffff", fg='#000000', width = 40)
self.import_name_entry.grid(column = 0, row=1)
self.db_name = tk.Label(self.import_frame, text = "DATABASE NAME", background = "#42b9f4", fg='#000000', width = 30)
self.db_name.grid(column = 0, row=3)
self.db_name_entry = tk.Entry(self.import_frame, text = "", background = "#ffffff", fg='#000000', width = 40)
self.db_name_entry.grid(column = 0, row=4)
self.table_name = tk.Label(self.import_frame, text = "TABLE NAME", background = "#42b9f4", fg='#000000', width = 40)
self.table_name.grid(column = 0, row=5)
self.table_name_entry = tk.Entry(self.import_frame, text = "", background = "#ffffff", fg='#000000', width = 40)
self.table_name_entry.grid(column = 0, row=6)
self.submit_button = tk.Button(self.import_frame, relief = "raised", background = "#42b9f4", fg='#000000', text = "SUBMIT", width = 15 , command = self.import_csv)
self.submit_button.grid(sticky= "n", column = 0, row=7)
self.import_frame.grid(column =0 , row =0)
def import_csv(self):
file_path = self.import_name_entry.get()
mayfieldFile = open(str(file_path),"r")
output = "---BEGINING IMPORT---\n"
app = main_window(output)
def main():
global Initialising
Initialising = True
output = ""
app = main_window(output)
if __name__ == '__main__':
main()