【问题标题】:Setting entry text box size in Tkinter python在 Tkinter python 中设置输入文本框大小
【发布时间】:2020-03-21 02:56:11
【问题描述】:

我正在尝试创建一个表单,该表单要求某些输入选项的长度超过一行。 .Entry() 函数似乎无法做到这一点。

这个问题是我在文档中没有看到如何限制文本输入框的大小(特别是行数或高度)

明确地说,我不是要设置放置高度或文本大小,而是要限制可以输入文本的行数(因此表单是可预测的大小),这是必要的,因为对于每个我正在使用 .place() 将它们放在某些像素位置,因此 .pack() 也不是解决我的问题的可行解决方案

一些参考资料:

Documentation for entry widget

【问题讨论】:

  • “我正在尝试限制可以输入文本的行数(因此表单是可预测的大小)” - 您的要求不清楚.一方面,Entry 小部件只允许您输入一行,因此设置大小无关紧要。对于文本小部件,小部件的大小和行数是独立的。如果你想限制高度,你是专门问限制可以输入多少行,还是你真的只关心小部件的物理高度?
  • 只有物理高度,以便我的 GUI 和标签上的表格都以可预测的方式排列。但是,如果您还想添加有关字符数限制的答案,我会将其标记为有用,因为它可能对那些发现此问题的人有用

标签: python user-interface tkinter tkinter-entry tkinter-layout


【解决方案1】:

请改用text widget。它有一个高度选项

注意:place 需要表示像素的整数,但是在文本框的选项中,width 选项需要表示字符数的整数,height 选项需要表示行数的整数。如果您尝试使用期望 20 像素的 height=20,您会感到非常惊讶。如果你使用 width = 5, height = 5 它不会是正方形的。

作为参考,文本小部件中的默认文本大小和字体平均为每个字符 8 个像素宽,而条目小部件的默认值是每个字符 6 个像素,因此如果您希望表单拉伸某个数字像素,使用 width = round(pixel_length /6)

您可以将其与屏幕宽度和表单角的位置结合起来,以填充整个页面或接近末尾(如果您愿意)

【讨论】:

  • 您的评论有点难以理解。当您说“宽度需要表示字符数的整数” 时,这只是部分正确。您使用的是place,而place 有一个使用像素的宽度选项。它是Text 小部件的width 选项,以字符数表示。
  • 谢谢@BryanOakley,我已对其进行了更清晰的编辑
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 2023-02-04
  • 1970-01-01
相关资源
最近更新 更多