如何使用 Python Tkinter 在一行中显示少量标签并在下一行中显示少量标签?

How to Display few Labels in One Line and Few in the next line with Python Tkinter?

我有一个程序可以在 GUI 屏幕上显示标签,但全部显示在一行中。我想在一行中显示第一个循环中的所有标签,在另一行中显示第二个循环中的所有标签。代码如下:

from tkinter import *
import tkinter as tk

win = Tk()
win.title("Labels")
win.geometry("800x600+50+50")
win.config(bg='white')

label1=Label(win, text="All Labels", font=("Calibri",24,"bold"), bg='white', borderwidth=1, relief="solid")
label1.pack(pady=15)

for a in range(10):
    pre1=Label(win, text=("PIN",a), font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
    pre1.pack(side=tk.LEFT)

for b in range(10):

    if (b%2==0):
        pre2=Label(win, text="OFF", font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
        pre2.pack(side=tk.LEFT)
    else:
        pre3=Label(win, text="ON", font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
        pre3.pack(side=tk.LEFT)

win.mainloop()

输出:

这应该有效:

from tkinter import *
import tkinter as tk

win = Tk()
win.title("Labels")
win.geometry("800x600+50+50")
win.config(bg='white')

label1=Label(win, text="All Labels", font=("Calibri",24,"bold"), bg='white', borderwidth=1, relief="solid")
label1.pack(pady=15)

lblframe = tk.Frame(win)
for a in range(10):
    pre1=Label(lblframe, text=("PIN",a), font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
    pre1.grid(row=0, column=a)

for b in range(10):

    if (b%2==0):
        pre2=Label(lblframe, text="OFF", font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
        pre2.grid(row=1, column=b)
    else:
        pre3=Label(lblframe, text="ON", font=("Calibri",12), bg="white", borderwidth=1, relief="solid")
        pre3.grid(row=1, column=b)

lblframe.pack()

win.mainloop()