[Tkinter] Tkinter won't start - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: [Tkinter] Tkinter won't start (/thread-35553.html) |
Tkinter won't start - uriel - Nov-16-2021 Hello everyone! I faced with difficult that when I run this code: from tkinter import Tk, Canvas root = Tk() c = Canvas(root, width=800, height=800, bg='black') c.pack() c.create_text(100, 50, anchor='w', fill='orange', font='Arial 28 bold underline', text='....')[attachment=1380] ...it gives me: Process finished with exit code 0, but Tkinter's window doesn't appear. RE: Tkinter won't start - deanhystad - Nov-16-2021 It started and then ended quite abruptly. Add root.mainloop() to the end of the program. RE: Tkinter won't start - Yoriz - Nov-16-2021 When creating a GUI with tkinter you need to have a single mainloop that is called at the point you want your GUI to run.It creates an infinite loop that runs until the main tkinter window is destroyed. The mainloop will draw the GUI widgets and react to events such as button presses, as you have seen without it the GUI doesn't function.from tkinter import Tk, Canvas root = Tk() c = Canvas(root, width=800, height=800, bg='black') c.pack() c.create_text(100, 50, anchor='w', fill='orange', font='Arial 28 bold underline', text='....') root.mainloop() RE: Tkinter won't start - uriel - Nov-17-2021 Thanks a lot! I am learning from a book and there is no mention of mainloop on it. RE: Tkinter won't start - uriel - Nov-17-2021 Also i want to ask about other issue: Did i make a mistake in the code with reading the contents of the file or again with dispaying the lines of the file? from tkinter import Tk, Canvas from datetime import date, datetime def get_events(): list_events = [] with open('events.txt', encoding='utf-8') as file: for line in file: line = line.rstrip('\n') current_event = line.split(',') event_date = datetime.strptime(current_event[1], '%d/%m/%Y').date() current_event[1] = event_date list_events.append(current_event) return list_events def days_between_dates(date1, date2): time_between = str(date1 - date2) number_of_days = time_between.split(' ') return number_of_days[0] root = Tk() c = Canvas(root, width=800, height=800, bg='black') c.pack() c.create_text(100, 50, anchor='w', fill='orange', font='Arial 28 bold underline', text='Календарь ожидания') root.mainloop() events = get_events() today = date.today() vertical_space = 100 for event in events: event_name = event[0] days_until = days_between_dates(event[1], today) display = '%s через %s дн.' % (event_name, days_until) c.create_text(100, 100, anchor='w', fill='light blue', font='Arial 28 bold', text=display) vertical_space = vertical_space + 30 |