python - 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()
解决方案
推荐阅读
- redis - Nestjs - 如何在 Nestjs e2e 测试中监听 ClientRedis 信号
- java - Spring Boot 集成测试问题
- javascript - 将 PDF 与菜单合并
- r - 如何处理 lapply 中的特定单元格?
- android - 在 android 中存储可供其他应用程序公开访问的视频文件
- javascript - 如何在数组中创建更多的空数据?
- ios - Firebase 通知令牌传输错误到 IOS 当前版本 Swift WebView
- node.js - PM2 与 NodeJs 崩溃然后每 1 秒重新启动一次
- database - 在 knex 迁移:上,table.foreign 未显示在终端的实际表上
- ios - 如何在同一个 ViewController Swift 5 中定义两个下拉选项