In this tkinter app I want label_two to abut ent_text_one
It does this if the length of ent_text_two is less than or equal to the length of ent_text_one and label_two combined. But if it is greater, then label_two appears to be right aligned in column 2. How can I fix this?
import tkinter as tk
from tkinter import ttk
def main():
# Create the app's main window and loop
root = tk.Tk()
root.geometry('500x400')
root.title('Test gui')
mainframe = _create_main_frame(root)
mainframe.grid(column=0, row=0)
root.mainloop()
def _create_main_frame(container):
frame = ttk.Frame(container, padding=5)
_create_gui_items(frame)
return frame
def _create_gui_items(frame):
lbl_test_one = ttk.Label(frame, text='Label one')
lbl_test_one.grid(row=0, column=0, sticky=tk.E)
str_value_one = tk.StringVar()
ent_text_one = ttk.Entry(frame, width=10, textvariable=str_value_one)
ent_text_one.grid(row=0, column=1, sticky=tk.W)
lbl_test_two = ttk.Label(frame, text='Label two')
lbl_test_two.grid(row=0, column=2, sticky=tk.E)
lbl_test_three = ttk.Label(frame, text='Label three')
lbl_test_three.grid(row=1, column=0, sticky=tk.W)
str_value_two = tk.StringVar()
ent_text_two = ttk.Entry(frame, width=25, textvariable=str_value_two)
ent_text_two.grid(row=1, column=1, columnspan=2, sticky=tk.W)
if __name__ == '__main__':
main()