【问题标题】:How to set max amount of columns in tkinter grid?如何在 tkinter 网格中设置最大列数?
【发布时间】:2021-11-14 09:05:01
【问题描述】:

我想知道如何设置 tkinter 网格中的最大列数,这样我的文本就不会被推离屏幕,并且一切都会重新调整以适应。我想将最大列数设置为 6。我在网上没有找到任何关于此的信息,所以我希望人们能帮助我。了解如何设置最大行数也会很有帮助。希望社区可以提供帮助 这里我使用了 6 列:

day0infol = Label(text=day0infoF)
day0infol.grid(column = 0,row = 2,padx = 20)

day1dayl = Label(text=day1dayF, font=customFont)
day1dayl.grid(column=1,row=0,padx=20)

day2dayl = Label(text=day2dayF, font=customFont)
day2dayl.grid(column = 2,row=0,padx=20)
day3dayl = Label(text=day3dayF, font=customFont)
day3dayl.grid(column = 3,row=0,padx=20)
day4dayl = Label(text=day4dayF, font=customFont)
day4dayl.grid(column = 4,row=0,padx=20)
day5dayl = Label(text=day5dayF, font=customFont)
day5dayl.grid(column = 5,row=0,padx=20)

我想将六列设置为最大列,或者想办法以另一种方式做到这一点。希望你能帮忙。 忽略文本变量

【问题讨论】:

  • 您是创建列的人如果您不想超过 6 个,请不要在第 7 列中添加任何内容。
  • 如果前6列的那些标签的文字很长,如果窗口的宽度不能显示所有的文字,不管有多少列,一些标签仍然会被推到可视区域之外你用过。

标签: python tkinter tkinter-layout


【解决方案1】:

tkinter 网格中的最大列数,因此我的文本不会被推送 关闭屏幕,一切都会重新调整以适应。

最多列如何避免这种情况?一列在 x 和 y 方向上可以是 1000 或更多像素。

最简单的方法是,因为您似乎在函数中创建标签并且使用主参数,所以应该是:

root=tk.Tk()
root.grid_propagate(0)

grid_propagate(0) 命令将指示您的窗口忽略请求的宽度和高度,它包含的子/小部件想要声明。


另一种方法是在函数中创建标签并比较 root.grid_info() 是否已达到最大列数。

但是你为什么不使用tk.Text() 小部件呢?甚至是tk.Scrolledtext()

由于您是初学者,请查看 this post

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2018-01-09
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多