Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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 如何让get()函数在tkinter中工作?_Python_Oop_Tkinter_Self - Fatal编程技术网

Python 如何让get()函数在tkinter中工作?

Python 如何让get()函数在tkinter中工作?,python,oop,tkinter,self,Python,Oop,Tkinter,Self,所以,当我运行这个程序时,我得到了TypeError:get()缺少1个必需的位置参数:“self”,为什么会发生这种情况,以及如何修复这种情况。我正在尝试做一个Post-It应用程序,我想显示Post-It文件的文本。当我启动此应用程序时,我正在调用主菜单功能,当我选择post it的radiobutton并单击Read-button时,将调用Read_PostIt功能 我对这类事情不太了解,如果有人帮助我,我会非常高兴 完全错误回溯: PS C:\Users\Aatu\Documents\p

所以,当我运行这个程序时,我得到了TypeError:get()缺少1个必需的位置参数:“self”,为什么会发生这种情况,以及如何修复这种情况。我正在尝试做一个Post-It应用程序,我想显示Post-It文件的文本。当我启动此应用程序时,我正在调用主菜单功能,当我选择post it的radiobutton并单击Read-button时,将调用Read_PostIt功能

我对这类事情不太了解,如果有人帮助我,我会非常高兴

完全错误回溯:

PS C:\Users\Aatu\Documents\pythonleikit>&C:/Python39ni/python.exe C:/Users/Aatu/Documents/python/pythonleikit/tkinterstuff/posttap/post-its.py
Tkinter回调中的异常
回溯(最近一次呼叫最后一次):
文件“C:\Python39ni\lib\tkinter\\ uuuuu init\uuuuuu.py”,第1892行,在调用中__
返回self.func(*args)
文件“c:\Users\Aatu\Documents\python\pythonleikit\tkinterstuff\posttap\post its.py”,第73行,在Read\u posit中
posit=所选内容\u posit.get()
TypeError:get()缺少1个必需的位置参数:“self”

您可以发布完整的错误回溯吗?还可以尝试将
tk.StringVar
更改为
tk.StringVar()
posit_LabelName=无论什么…
是对字面上命名为
posit_LabelName
的变量的赋值。之前为该变量赋值字符串不会神奇地导致该赋值执行完全不同的操作。您希望将标签附加到单个列表中,而不是为每个列表创建新的变量名。@TheLizzard有完整的tracebackhmm。。。我将tk.StringVar更改为tk.StringVar(),并更改了命名系统,如@jasonharper。现在我得到了PermissionError:[Errno 13]权限被拒绝:这是由于行“``以open(“{}”格式(f),“r”)作为fi:``引起的,正如Lizzard已经指出的,唯一的问题是行
被选中了\u posit=tk.StringVar
。它应该是:
selected\u posit=tk.StringVar()
。否则,将变量定义为tkStringVar类,这没有任何意义。
def Main_Menu():
    for widget in myframe_1.winfo_children():
        widget.destroy()
    PostIt_Count = len([name for name in os.listdir('C:/Users/Aatu/Documents/python/pythonleikit/tkinterstuff/PostItApp/PostIts')])
    if PostIt_Count > 0:
        for i in range(PostIt_Count):
            PostIt_NamesList = [name for name in os.listdir('C:/Users/Aatu/Documents/python/pythonleikit/tkinterstuff/PostItApp/PostIts')]
            PostIt_LabelName = 'PostItLabel' + str(i)
            global selected_postit
            selected_postit = tk.StringVar
            PostIt_LabelName = ttk.Radiobutton(myframe_1, text=PostIt_NamesList[i], variable=selected_postit)
            y = ([x for x in range(1, PostIt_Count +1)][i])- 0.4
            y = str(y)[:1] + str(y)[2:]
            yname = '.' + y
            PostIt_LabelName.place(relx=.1, rely=yname)

def Read_PostIt():
    for widget in myframe_3.winfo_children():
        widget.destroy()
    filepath = 'C:/Users/Aatu/Documents/python/pythonleikit/tkinterstuff/PostItApp/PostIts/'
    postit = selected_postit.get()
    f = filepath + postit
    with open('{}'.format(f), 'r') as fi:
        global text
        text = fi.readlines()
        fi.close()
    text_label = Label(myframe_3, text='{}'.format(text))
    text_label.place(relx=.01, rely=.01)