Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python str对象没有属性tk_Python_Loops_Tkinter - Fatal编程技术网

Python str对象没有属性tk

Python str对象没有属性tk,python,loops,tkinter,Python,Loops,Tkinter,我的程序中有9个标签,在这些标签中,我有5个小部件,每个小部件都完全相同。因此,我不想编写一块完全相同的手写代码,而是想使用一个循环,这样程序就能自我组装。但是我得到的不是进度,而是属性错误。我的问题是:我如何“说服”我的代码,我的“x”实际上不是一个“x”,而是一个“f1”(“f2”、“f3”等),并且它的tk属性已经声明了 import Tkinter as tk import ttk as ttk import sqlite3 #importowanie bazy danych impor

我的程序中有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()
将Tkinter作为tk导入
将ttk作为ttk导入
导入sqlite3#导入Anie bazy danych
导入时间
导入日期时间
litera=“f”
Aplikacja级(传统框架):
定义初始化(self,*args,**kwargs):
tk.Frame.\uuuu init\uuuuu(self,*args,**kwargs)
self.grid()
k=tk.顶层(自)
zakladki=ttk.笔记本(k)
f1=ttk帧(扎克拉德基)
f2=ttk.帧(扎克拉德基)
f3=ttk.帧(扎克拉德基)
f4=ttk帧(扎克拉德基)
f5=ttk.帧(zakladki)
f6=ttk.框架(扎克拉德基)
f7=ttk.框架(扎克拉德基)
f8=ttk.帧(zakladki)
f9=ttk.帧(扎克拉德基)
zakladki.add(f1,text='Czapki')
添加(f2,text='Dodatki')
添加(f3,text='buti')
添加(f4,text='spodnie')
添加(f5,text='kurtka')
zakladki.add(f6,text='T-shirt')
zakladki.add(f7,text='sweter')
添加(f8,text='skarpetki')
zakladki.add(f9,text='koszula')
zakladki.grid()
numznak=1

当numznak时,标签帧对需要一个外循环,标签条目对需要一个内循环。我相信以下是你寻找的一个开始

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()

你把
x
定义为一个字符串,但是你想在里面放一个
标签
?我想让程序在每个选项卡中都有那些构建按钮,这样我就不必写
tk.Label(f1,text='Nazwa').grid(row=0,column=0)tk.Label(f2,text='Nazwa').grid(row=0,column=0)
九次请发布完整的错误消息。不要让我们猜测错误在哪里。为什么你认为变量
x
可以是小部件的父项?@TRV:这就是我提到它的原因。布莱亚诺克利说得比我好。