在tkinter中调整Entry Widget大小的问题

RRSC NGP

我正在使用以下代码在tkinter Frame上填充Entry小部件:

import tkinter as tk

def populate(frame):
    '''Put in some fake data'''
    for row in range(100):
        tk.Label(frame, text="%s" % row, width=3, borderwidth="1", relief="solid").grid(row=row, column=0)
        tk.Entry(frame, width = 50).grid(row=row, column=1)
    
def onFrameConfigure(canvas):
    '''Reset the scroll region to encompass the inner frame'''
    canvas.configure(scrollregion=canvas.bbox("all"))
    
root = tk.Tk()
canvas = tk.Canvas(root, borderwidth=0)
frame = tk.Frame(canvas)
vsb = tk.Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)

vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((0,0), window=frame, anchor="nw")

frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))

populate(frame)

root.mainloop()

我在上面的代码中面临的问题是,当我调整tkinter主窗口的大小时,Entry小部件没有根据窗口大小的变化自动调整自身大小。

有人可以帮我解决这个问题吗?

acw1668

如果要在调整tkinter窗口的大小时调整条目的大小,则需要:

  • 调整大小framecanvas调整大小
    def on_canvas_resized(event):
        canvas.itemconfig('frame', width=event.width)
    
    ...
    canvas.bind('<Configure>', on_canvas_resized)
    ...
    canvas.create_window((0,0), window=frame, anchor="nw", tag='frame') # added tag
    
  • 使Entry水平填充可用空间
    def populate(frame):
        '''Put in some fake data'''
        for row in range(100):
            tk.Label(frame, text="%s" % row, width=3, borderwidth="1", relief="solid").grid(row=row, column=0)
            tk.Entry(frame, width = 50).grid(row=row, column=1, sticky='ew') # added sticky
    ...
    frame.columnconfigure(1, weight=1) # make column 1 to fill available space horizontally
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在tkinter中调整图像大小

来自分类Dev

Python Tkinter:调整框架大小的问题

来自分类Dev

Python Tkinter:调整框架大小的问题

来自分类Dev

如何在Tkinter中调整按钮的大小?

来自分类Dev

在tkinter Toplevel中调整matplotlib图的大小

来自分类Dev

无法在Tkinter中获得Entry Widget的价值

来自分类Dev

调整图像大小的问题

来自分类Dev

调整pyqt中滚动区域大小的问题

来自分类Dev

UIPageViewController中的UIImageView调整大小问题

来自分类Dev

在Chrome中调整TextArea大小的问题

来自分类Dev

在Ubuntu中调整分区大小的问题

来自分类Dev

调整Canvas的大小使其等于Tkinter Python中的帧大小

来自分类Dev

Tkinter窗口调整大小

来自分类Dev

在Tkinter中调整图片大小时遇到麻烦

来自分类Dev

如何调整从Tkinter的选项菜单中显示的图像的大小?

来自分类Dev

在Tkinter中调整笔记本标签的大小

来自分类Dev

在tkinter中调整画布大小并重新绘制

来自分类Dev

列表框无法在Tkinter中自动调整大小(python)

来自分类Dev

我如何在 python tkinter 中显示调整大小的图像

来自分类Dev

tkinter 中可调整大小的窗口框架

来自分类Dev

如何捕获从Tkinter中的空Entry Widget生成的ValueError

来自分类Dev

KryptonSeparator调整大小问题

来自分类Dev

UITextField调整大小问题

来自分类Dev

UISearchBar调整大小问题

来自分类Dev

ConstraintLayout大小调整问题

来自分类Dev

UISearchBar调整大小问题

来自分类Dev

KryptonSeparator调整大小问题

来自分类Dev

jQuery调整大小以响应的问题

来自分类Dev

调整窗口大小问题