python画布组件_Python tkinter框架画布,小部件条目resiz

本文探讨了在Python的tkinter框架中,如何在窗口大小改变时使条目(Entry)小部件自动调整长度。问题集中在两个条目,其中一个需要填充剩余的宽度。示例代码展示了尝试使用grid几何管理器和事件绑定来实现这一目标,但遇到了问题。作者寻求解决方案。
摘要由CSDN通过智能技术生成

我有问题。我使用的是tkinter和Python2.7。如何在调整窗口大小后更改小部件的长度?我有两个小部件:

条目1(列=0)和条目2(列=1)

入口1具有固定宽度。Entry2应该填充剩余的宽度。不幸的是,它不起作用。

有办法吗?

提前致谢。

代码:from Tkinter import *

import ttk

root = Tk()

root.grid_columnconfigure(0, weight=1)

root.grid_rowconfigure(0, weight=1)

notebook = ttk.Notebook(root)

tab = Frame(notebook)

notebook.add(tab, text = "Tab 1")

notebook.grid(row=0,column=0, sticky="NSEW")

tab.grid_columnconfigure(0, weight =1)

tab.grid_rowconfigure(0, weight=1)

canvas_tab = Canvas(tab, width=500, height=100)

scroll_tab = Scrollbar(tab, command = canvas_tab.yview)

canvas_tab.config(yscrollcommand=scroll_tab.set)

scroll_tab.grid(row=0, column = 1, sticky = "NSE")

canvas_tab.grid(row=0, column = 0, sticky = "NSEW")

canvas_tab.grid_columnconfigure(0, weight=1)

frame = Frame(canvas_tab)

frame.grid_columnconfigure(1, weight=1)

Entry1 = Entry(frame, text = "", width=20, justify = CENTER)

Entry1.grid(row = 0, column = 0)

Entry1.insert(0, 'Entry 1')

Entry2 = Entry(frame, text = "", justify = CENTER)

Entry2.grid(row = 0, column = 1, sticky = "NSEW")

Entry2.insert(0, 'Entry 2')

def configure(event):

canvas_tab.itemconfig(root, width=event.width)

canvas_tab.create_window((0,0), anchor=NW, window=frame)

frame.update_idletasks()

canvas_tab.config(scrollregion = frame.bbox("all"))

canvas_tab.bind('', configure)

root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值