У меня есть программа в Python Tkinter, в которой я сделал три строки по 10 ярлыков и кнопку «Пуск» под ними. Я использовал циклы для отображения текста в метках.
Только в первой строке меток Отображаются заголовки.
Вторую строку метки Я установил условие, что если модуль значения цикла равен нулю (a%2==0)
, то он отображает текст метки ON, иначе OFF, и это условие противоположно в третьей строке метки, как показано ниже и в коде.
Наконец, для кнопки «Пуск» я вызвал функцию, которая распознает процесс, который, если модуль 2 значения переменной цикла равен единице, отображает текст меток OFF во второй строке меток else ON. Этот процесс противоположен третьему ряду ярлыков. Но проблема здесь в том, что когда я нажимаю кнопку «Пуск», она меняет только последнее значение второй и третьей строки меток, но я хочу изменить все из них. Я думаю, что функции не работают должным образом, как хотелось бы. Код ниже.
from tkinter import *
import tkinter as tk
win = Tk()
win.title("Label")
win.geometry("800x600+50+50")
win.config(bg='white')
label1=Label(win, text="Label Status Changer", font=("Calibri",24,"bold"), bg='white', borderwidth=1, relief="solid", padx=20, pady=20) #"flat", "raised", "sunken", "ridge", "solid", and "groove"
label1.pack(pady=(15,60))
lblframe = tk.Frame(win)
for a1 in range(10):
pre1=Label(lblframe, text=("LBL",(a1+1)), font=("Calibri",12, "bold"), bg="white", borderwidth=1, relief="solid", padx=5, pady=2)
pre1.grid(row=0, column=a1)
for a2 in range(10):
if ( a2%2 == 0 ):
pre2=Label(lblframe, text="OFF", font=("Calibri",12,"bold"), bg="white", fg="Green", borderwidth=1, relief="solid", padx=11, pady=1)
pre2.grid(row=1, column=a2, sticky="nw")
else:
pre2=Label(lblframe, text="ON", font=("Calibri",12,"bold"), bg="white", fg="Red", borderwidth=1, relief="solid", padx=11, pady=1)
pre2.grid(row=1, column=a2, sticky="nw")
for a3 in range(10):
if (a3%2 == 1):
pre3=Label(lblframe, text="OFF", font=("Calibri",12,"bold"), bg="white", fg="Green", borderwidth=1, relief="solid", padx=11, pady=1)
pre3.grid(row=2, column=a3, sticky="nw")
else:
pre3=Label(lblframe, text="ON", font=("Calibri",12,"bold"), bg="white", fg="Red", borderwidth=1, relief="solid", padx=11, pady=1)
pre3.grid(row=2, column=a3, sticky="nw")
lblframe.pack()
def oldstatus():
for a4 in range(10):
if(a4%2==1):
pre2.config(text="OFF")
else:
pre2.config(text="ON")
def newstatus():
for a5 in range(10):
if(a5%2==0):
pre3.config(text="OFF")
else:
pre3.config(text="ON")
def statuschanger():
oldstatus()
newstatus()
#Button1
button1=Button(win,text="Start",width=10,height=2, font=("Calibri",16,"bold"), bg="black",fg="white", command=statuschanger)
button1.pack(pady=(30,0))
win.mainloop()
Выход при работающей программе
Выход при нажатии Кнопка запуска