我的程序中有9个选项卡,在这些选项卡中我有5个小部件,每个小部件完全相同。因此,我没有编写一组相同的手写代码,而是想使用循环,因此程序将自行组装。但我没有进步,而是出现了属性错误。我的问题是:我怎样才能说服"我的代码是我的" x"并不是真正的" x"但是" f1"(" f2"," f3"等)及其tk属性已经宣布?
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()
答案 0 :(得分:2)
您需要一个tab-frame对的外部循环和一个标签条目对的内部循环。我相信以下是你正在寻找的开始。
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()