Label在类小部件中,Text您需要指定在类中创建的框架中的成员资格Frames,值,或者更确切地说是框架列表,带有参数,存储在列表中self.List_frames,您需要将此列表传递给类Text,然后Label通过索引在小部件中指示它属于列表中的框架之一,实现它的最佳方法是什么?
from tkinter import *
import tkinter as tk
root = Tk()
root.title('Python')
root.geometry('605x400')
root.resizable(width = False, height = False)
# Класс реализации фреймов
class Frames():
# Инициализация заданых параметров
def __init__(self, background_line, width_line, height_line):
self.background_line = background_line
self.width_line = width_line
self.height_line = height_line
# Лист фреймов
self.List_frames = []
# Лист имен фреймов
self.List_name_frames = ['One_line', 'Two_line', 'Three_line', 'Four_line', \
'Five_line', 'Six_line', 'Seven_line', 'Eight_line',\
'Nine_line', 'Ten_line']
# Создание фреймов, присвоение параметров к фреймам, запись фреймов в список
for name_line in self.List_name_frames:
name_line = Frame(root, background = self.background_line, \
width = self.width_line, height = self.height_line)
self.List_frames.append(name_line)
# Вызов созданных фреймов с параметрами на экран
for line in self.List_frames:
line.pack(anchor = W)
line.pack_propagate(False)
# Класс реализации текста
class Text():
def __init__(self, text, background_text, font_text, foreground_text, width_texts):
self.Pixel_Virtual = tk.PhotoImage(width = 1)
self.text = text
self.background_text = background_text
self.font_text = font_text
self.foreground_text = foreground_text
self.width_text = width_texts
# Создание текстового поля [День:]
Day = Label(image = self.Pixel_Virtual, text = self.text,
background = self.background_text, font = self.font_text,
foreground = self.foreground_text, width = self.width_text)
# Создаем обьект класса фреймов
# Параметры: цвет фона, ширина, высота
call_Frames = Frames('olivedrab', 605, 40)
# Создаем обьект класса текста
# Параметры: текст, цвет фона, стиль текста, цвет текста, ширина блока с текстом
call_Text = Text('День', 'green', 'Arial 12', 'black', 40)
root.mainloop()
想通了,您需要使用类变量而不是实例变量