首页 > 解决方案 > python/tkinter,如何将东西“固定”在它们的位置?

问题描述

所以,我把窗户分成了 3 个“部分”,我喜欢每个人都被放置的地方在此处输入图像描述

现在,我的问题是每次单击entry-box。一个列表框打开(这确实是有意的),但是由于那个listobox,有些东西移动了一点,我讨厌那个!有办法解决吗? 在此处输入图像描述

def open_menu_box(e):
    global wait
    global box_filter
    global menu_search_box

    if not box_filter:
        menu_search_box = tkinter.Listbox(left_side, width=76, height=25)
        menu_search_box.grid(row=1, column=0, sticky='n', rowspan=2)
        # load_csv_data()
        box_filter = True
        wait = False
    else:
        menu_search_box.destroy()
        menu_search_box = tkinter.Listbox(left_side, width=76, height=25)
        menu_search_box.grid(row=1, column=0, sticky='n', rowspan=2)
        # load_csv_data()
        wait = False

    menu_search_box.bind('<<ListboxSelect>>', fill_out)


def close_menu_box(e):
    global wait
    global box_filter

    if box_filter and wait:
        menu_search_box.destroy()
        wait = False
        box_filter = False

    elif box_filter:
        wait = True


box_filter = False
wait = False
data_list = []
entry_list = []
images_list = []

mainw = tkinter.Tk()
mainw.geometry('1300x900+370+70')
mainw.title('Merch Helper')
mainw.columnconfigure(0, weight=15)
mainw.columnconfigure(1, weight=85)
mainw.rowconfigure(0, weight=100)
mainw.bind('<Button-1>', close_menu_box)
load_images()
# left panel -----------------------------------------------------------------------------------------------------------
left_side = tkinter.LabelFrame(mainw)

left_side.columnconfigure(0, weight=10)
left_side.columnconfigure(1, weight=90)

left_side.rowconfigure(0, weight=2)
left_side.rowconfigure(1, weight=78)
left_side.rowconfigure(2, weight=20)
left_side.grid(row=0, column=0, sticky='wsne')

# Entry box
search_box = tkinter.Entry(left_side, font=('Calibri', 15), borderwidth=5, width=45)
search_box.grid(row=0, column=0, sticky='s', )

search_box.bind('<Button-1>', open_menu_box)
search_box.bind('<KeyRelease>', search)
search_box.bind('<Return>', enter_rl)

# Image search button
image_search_img = tkinter.PhotoImage(file='select3.png')

image_search_button = tkinter.Button(left_side, image=image_search_img, borderwidth=0)
image_search_button.grid(row=0, column=1, sticky='n', rowspan=2)
# Menu-----------------------------------------------------
left_side_menu = tkinter.LabelFrame(left_side)
left_side_menu.grid(row=2, column=0, sticky='wsne', columnspan=2)

items_img = tkinter.PhotoImage(file='DefImage.png')

item_img = tkinter.Label(left_side_menu, image=items_img)
item_img.grid(row=0, column=0)

# Right panel ----------------------------------------------------------------------------------------------------------
right_side = tkinter.LabelFrame(mainw)
right_side.grid(row=0, column=1, sticky='wsne')

# test area-------------------------------------------------------------------------------------------------------------
# test = tkinter.Label(left_side, text='5')
# test.grid(row=0, column=0, sticky='s')

test2 = tkinter.Label(right_side, text='52')
test2.grid(row=0, column=0)

# test3 = tkinter.Label(left_side_menu, text='h')
# test3.grid(row=1, column=0)

mainw.mainloop()

标签: pythontkinter

解决方案


推荐阅读