Phil wrote: > On Sun, 23 Apr 2017 09:52:16 +0200 > Peter Otten <__pete...@web.de> wrote: > >> If you wrote the above with Buttons instead of DisplayTables you'd >> encounter the same behaviour. The problem is that you call >> tkinter.Tk() twice (which is generally a recipe for disaster; if you >> want multiple windows use tkinter.Toplevel() for all but the first >> one). >> >> Once you have fixed that you should be OK: >> >> import tkinter as tk >> import table_class >> >> root = tk.Tk() >> >> tab = table_class.DisplayTable(root, >> ["Left","middle","Right"], >> [[1,2,1], >> [3,4,3], >> [5,6,5]], >> datacolor='blue', >> cellcolor='yellow', >> gridcolor='red', >> hdcolor='black') >> >> second_tab = table_class.DisplayTable(root, >> ["Left","middle","Right"], >> [[1,2,1], >> [3,4,3], >> [5,6,5]], >> datacolor='blue', >> cellcolor='green', >> gridcolor='red', >> hdcolor='black') >> >> tab.pack(side=tk.LEFT) >> second_tab.pack() >> >> root.mainloop() > > Thank you again Peter. Of course your changes worked but at the moment I'm > not sure why. > > if root = tk.Tk() then why isn't table_class.DisplayTable(root, the same > as table_class.DisplayTable(tk.Tk(),. Obviously it isn't but I don't know > why.
Consider the function make_a_cake(). If you use it eat_a_piece_of(make_a_cake()) eat_a_piece_of(make_a_cake()) that's short for one_cake = make_a_cake() eat_a_piece_of(one_cake) another_cake = make_a_cake() eat_a_piece_of(another_cake) i. e. you had two pieces of cake, one piece of each of two cakes. If you write cake = make_a_cake() eat_a_piece_of(cake) eat_a_piece_of(cake) you have still eaten two pieces of cake but both are taken from the same cake. Likewise when you write root = tk.Tk() first_table = DisplayTable(root) second_table = DisplayTable(root) both tables share the same instance of the Tk class. > Also I found that root.mainloop() isn't necessary in that the result is > the same with or without. Perhaps it serves some other purpose? Try running it from the command line, not in idle. In every tkinter program there must be a main loop to respond to events. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor