Как отобразить несколько меток в одной строке и несколько меток в следующей строке с Python Tkinter? - PullRequest
3 голосов
/ 18 февраля 2020

У меня есть программа, которая отображает метки на экране GUI, но все в одну строку. Я хочу отобразить все метки в первом L oop в одной строке и все метки во втором L oop в другой строке. Код ниже:

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()

Выход:

enter image description here

1 Ответ

1 голос
/ 18 февраля 2020

Это должно работать:

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()

Preview

...