【问题标题】:Align different labels in a Tkinter frame在 Tkinter 框架中对齐不同的标签
【发布时间】:2018-01-07 15:00:10
【问题描述】:

我有 x 个标签,这些标签是使用

创建的
rand = random.randint(1,100000)
local()[f'self.m{rand}'] = Label(self.frame, text='test')
local()[f'self.m{rand}'].pack()

此外,我有一个框架,我想按照这个方案在另一个框架旁边设置一个标签

Label 1 Label 2

Label 3 Label 4

Label 5 Label 6

Label **y** Label **x**

有人对我该如何继续有任何想法吗?

【问题讨论】:

  • 而不是使用locals() 更好地使用字典来保留元素。
  • 创建列和行使用grid()而不是pack()

标签: python tkinter frame labels


【解决方案1】:

使用grid() 而不是pack() 来创建列和行。

如果您使用pack(),则使用pack() 创建Frame,然后在Frame 中使用grid()

import tkinter as tk

root = tk.Tk()

frame = tk.Frame(root)
frame.pack()

labels = {}

for row_number in range(5):
    for col_number in range(2):
        value = 1 + row_number*2 + col_number
        labels[value] = tk.Label(frame, text='Label ' + str(value))
        labels[value].grid(row=row_number, column=col_number)

root.mainloop() 

【讨论】:

  • 有办法用 .pack() 做到这一点吗?我已经有了 pack 管理的奴隶
  • 你不能用pack()创建它 - 但你可以使用pack()创建框架,然后在框架内你可以使用grid()
猜你喜欢
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 2015-09-17
  • 2020-09-23
  • 2018-04-13
  • 2021-10-22
相关资源
最近更新 更多