объект ул не имеет атрибута тк

голоса
-1

У меня 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()
Задан 17/02/2016 в 20:36
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вам нужна внешний контур для пар закладок кадров и внутреннюю петля для пар меток входа. Я считаю, что следующее это начало того, что вы ищете.

import Tkinter as tk
import ttk

class Aplikacja(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.grid()

        zakladki=ttk.Notebook(parent)
        entries = {}
        for title in ('Czapki', 'Dodatki', 'buty', 'spodnie', 'kurtka',
                      'T-shirt', 'sweter', 'skarpetki', 'koszula'):
            frame = ttk.Frame(zakladki)
            for row, txt in (0, 'Nazwa'), (1, "Kolor"), (2, "Firma"):
                tk.Label(frame, text=txt).grid(row=row, column=0)
                entry = tk.Entry(frame)
                entries[title, txt] = entry
                entry.grid(row=row, column=1)
            zakladki.add(frame, text=title)
        zakladki.grid()

root= tk.Tk()
root.title("Szaffa")
app= Aplikacja(root)
root.mainloop()
Ответил 17/02/2016 в 23:11
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more