У меня 9 вкладок в моей программе, и в этих закладках у меня есть 5 виджетов, которые полностью одинаковы для всех. Таким образом, вместо того чтобы писать блок идентичного рукописного кода, который я хотел бы использовать цикл, чтобы программа будет самостоятельно собрать себя. Но вместо прогресса я получил сообщение об ошибке атрибута. Мой вопрос: Как я могу «убедить» мой код, что мой «х» на самом деле не «х», а «f1» ( «F2», «F3» и т.д.) и его атрибут тк уже объявлен?
import Tkinter as tk
import ttk as ttk
import sqlite3 #importowanie bazy danych
import time
import datetime
litera=f
class Aplikacja(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.grid()
k=tk.Toplevel(self)
zakladki=ttk.Notebook(k)
f1=ttk.Frame(zakladki)
f2=ttk.Frame(zakladki)
f3=ttk.Frame(zakladki)
f4=ttk.Frame(zakladki)
f5=ttk.Frame(zakladki)
f6=ttk.Frame(zakladki)
f7=ttk.Frame(zakladki)
f8=ttk.Frame(zakladki)
f9=ttk.Frame(zakladki)
zakladki.add(f1, text='Czapki')
zakladki.add(f2, text='Dodatki')
zakladki.add(f3, text='buty')
zakladki.add(f4, text='spodnie')
zakladki.add(f5, text='kurtka')
zakladki.add(f6, text='T-shirt')
zakladki.add(f7, text='sweter')
zakladki.add(f8, text='skarpetki')
zakladki.add(f9, text='koszula')
zakladki.grid()
numznak=1
while numznak<10:
znak2=str(numznak)
#print numznak: %d % numznak
#print znak2: %s % znak2
x=litera+znak2
#print x: %s % x
tk.Label(x, text='Nazwa').grid(row=0, column=0)
self.nazwa=tk.Entry(x)
self.nazwa.grid(row=0, column=1)
tk.Label(x, text=(Kolor)).grid(row=1, column=0)
self.kolor=tk.Entry(x)
self.kolor.grid(row=1, column=1)
tk.Label(x, text=(Firma:)).grid(row=2, column=0)
self.firma=tk.Entry(x)
self.firma.grid(row=2, column=1)
numznak= numznak +1
root= tk.Tk()
root.title(Szaffa)
root.geometry(180x200)
app= Aplikacja(root)
root.mainloop()