我正在编写一个显示小部件网格的程序。当窗口水平调整大小时,小部件会调整大小,但是当窗口垂直调整大小时,我希望小部件的高度保持不变,但行数要更改。我没有frame.bind(“”,configure)的运气,窗口不会调整大小。 root.after(1000,rsz)可以工作,但是如果我使延迟小得多,它就没有作用。似乎应该有一个更好的方法来执行此操作。有什么建议吗?
import tkinter as tk
from tkinter import ttk
#def configure(event):
# if not event.widget.master.master:
# rsz()
root=tk.Tk()
root.geometry("500x500")
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
def rsz():
global lasth
h = root.winfo_height()
if h != lasth:
for widget in frame.winfo_children():
widget.destroy()
for row in range(int((h)/26)):
frame.grid_rowconfigure(row, weight=0)
for col in range(6):
frame.grid_columnconfigure(col, weight=1)
ttk.Button(frame, text='row{}, col{}'.format(row,col)).grid(row=row, column=col, sticky='EWNS')
lasth = h
root.after(1000, rsz)
frame=tk.Frame(root,padx=5,pady=5)
frame.grid(row=0,column=0, sticky="NSEW")
lasth = -1
rsz()
#frame.bind("<Configure>", configure)
root.mainloop()
答案 0 :(得分:0)
file_list = glob.glob(os.path.join(root,invoice_dir_name, "*.(pdf|PDF)"))
应该可以与rsz()
一起正常工作:
frame.bind('<Configure>')