指定两个嵌入“条目”的相对宽度在“文本”内小部件
我在 Linux 和 Windows 上指定 Entry 小部件大小时遇到问题。这些条目是在 Linux 上创建的:
在 Linux 上,它们在文本小部件中看起来很好。有 2 个 Entry 单元格,由以下代码行创建:
tk.Entry(master, width=16)
宽度指定为 16 个字符长。
然而,在 Windows 上,单元格只占用一半的空间,我必须指定宽度 22,因为 Windows 上的字体尺寸较小。
我的问题是:有没有办法在文本小部件中指定这两个单元格的相对宽度,以便每个单元格占用父小部件的 1/2?
I have a problem in specifying Entry widget size on Linux and Windows. These entries were created on Linux:
On Linux, they look fine within the Text widget. There are 2 Entry cells one by one, created with this line of code:
tk.Entry(master, width=16)
The width is specified as being 16 characters long.
However, on Windows the cells take up only a half of the space and I have to specify the width of 22, because font size is smaller on Windows.
My question is: is there a way to specify a relative width of these two cells in the Text widget, so each cell takes 1/2 of the parent widget?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在文本小部件内?不,不直接支持相对宽度。在一个框架内?是的。如果您将它们放入文本小部件中(我想,这样您就可以滚动它们),您必须自己管理宽度。您可以将绑定添加到文本小部件的
事件。当文本小部件更改大小时会触发此事件,您可以在此时调整所有小部件的大小。最简单的方法是使用网格将它们放入框架中,然后将框架放入画布中以便可以滚动它。
这是一个例子:
Within a text widget? No, there is no direct support for relative widths. within a frame? yes. If you are putting them in a text widget (I presume, so you can scroll them) you have to manage the widths yourself. You can add a binding to the
<Configure>
event of the text widget. This fires when the text widget changes size, and you can resize all the widgets at that point.The easiest thing is to put them in a frame using
grid
, then put the frame in a canvas so you can scroll it.Here's an example: