0

I have a Toplevel Window with one grid row containing a Label, Entry and a "+" Button (window on startup) When I hit the Add-Button a new row with the same content is generated. But the problem is, that the window doesn't resize and fit to its new contents. Should look like this resized window.

The code is below:

def process_map():
    numbers = {0:'\u2080', 1:'\u2081', 2:'\u2082', 3:'\u2083', 4:'\u2084', 5:'\u2085', 6:'\u2086', 7:'\u2087', 8:'\u2088', 9:'\u2089'}
    button_pos = tk.IntVar(0)
    ENTRIES = {}

    def add_button():
        if button_pos.get() >= 10:
            index = numbers[button_pos.get()//10] + numbers[button_pos.get()%10]
        else:
            index = numbers[button_pos.get()]
        lb = tk.Label(top_root, text='\u03C6'+index)
        lb.grid(row=button_pos.get(), column=0, sticky='NWES')
        entry = tk.Entry(top_root, width=4, relief='sunken', bd=2)
        entry.grid(row=button_pos.get(), column=1, sticky='WE', padx=5, pady=5)
        ENTRIES.update({button_pos.get():entry})
        bt.grid(row=button_pos.get(), column=2, sticky='WE', padx=5, pady=5)
        bt_close.grid(row=button_pos.get()+1, column=1, padx=5, pady=5)
        bt_start.grid(row=button_pos.get()+1, column=0, padx=5, pady=5)
        button_pos.set(button_pos.get()+1)
        center(top_root)

    top_root = tk.Toplevel(root)
    top_root.title('Select \u03C6')
    lb = tk.Label(top_root, text='\u03C6\u2081', height=1)
    lb.grid(row=0, column=0, sticky='NWES')

    entry = tk.Entry(top_root, width=4, relief='sunken', bd=2)
    entry.grid(row=0, column=1, sticky='WE', padx=5, pady=5)
    button_pos.set(button_pos.get()+2)
    ENTRIES.update({button_pos.get():entry})

    bt = tk.Button(top_root, text='+', command=add_button,)
    bt.grid(row=0, column=2, sticky='WE', padx=5, pady=5)

    bt_close = tk.Button(top_root, text='Cancel', width=15, command=top_root.destroy)
    bt_close.grid(row=button_pos.get()+1, column=1, padx=5, pady=5)
    bt_start = tk.Button(top_root, text='Start', width=15)
    bt_start.grid(row=button_pos.get()+1, column=0, padx=5, pady=5)
    center(top_root)
    top_root.mainloop()
  • please create a [mcve] – Bryan Oakley Jul 20 '17 at 12:17
  • @BryanOakley I don't understand? I have posted a picture of what it looks like when it starts and what it SHOULD look like when new lines are added. The function above is called by a Button in the main root. This function generates a Toplevel tkinter window... I want that new window to resize when a new line is added... – Philipp Klimaax Jul 21 '17 at 09:28

0 Answers0