Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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 tkinter-tk.Stringvar()属性错误_Python_Oop_Python 3.x_Tkinter_Tk - Fatal编程技术网

Python tkinter-tk.Stringvar()属性错误

Python tkinter-tk.Stringvar()属性错误,python,oop,python-3.x,tkinter,tk,Python,Oop,Python 3.x,Tkinter,Tk,我的代码如下。我们关心的部分是页面框架中的“labelText=tk.Stringvar()” 它抛出以下错误: “AttributeError:模块'tkinter'没有属性'Stringvar'” 为什么它会抛出错误?如何防止此错误 import tkinter as tk class Program(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **

我的代码如下。我们关心的部分是页面框架中的“labelText=tk.Stringvar()”

它抛出以下错误: “AttributeError:模块'tkinter'没有属性'Stringvar'”

为什么它会抛出错误?如何防止此错误

import tkinter as tk

class Program(tk.Tk):        
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)

        tk.Tk.iconbitmap(self, default = "")
        tk.Tk.wm_title(self, "")

        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}
        for F in (Page, Other):

            frame = F(container, self)
            self.frames[F] = frame
            frame.grid(row = 0, column = 0, sticky = "nsew")

        self.show_frame(Page)

    def show_frame(self,cont):
        frame = self.frames[cont]
        frame.tkraise()


class Page(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        innerFrame = tk.Frame(self, bg="red")
        innerFrame.place(relx=.5, rely=.5, anchor="c", relwidth=1.0, relheight=1.0)

        labelText = tk.Stringvar()

class Other(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

app = Program()
app.state('zoomed')
app.mainloop()

Tkinter没有属性
Stringvar
,您应该将其替换为
Stringvar

labelText = tk.StringVar()

使用
Stringvar()
更改
Stringvar()
。“var”需要大写。

您应该自己查找合法tkinter属性列表:
import tkinter;打印(dir(tkinter))
。或者在IDLE或其他名为completion的IDE中:
将tkinter作为tk导入,后跟
>>tk.
后跟wait或调用completions的任何东西,后跟弹出框。键入
S
并突出显示
StringVar