首页 > 解决方案 > 如何从 tkinter 按钮调用类函数?

问题描述

我正在尝试创建一个程序,每次单击按钮时都会打印一些内容,但必须使用类来完成。

当我运行我的代码时,出现此错误: NameError: name 'self' is not defined

(我不想将 test_button 放在类中,因为这只是一个更大程序的一部分,如果我以这种方式解决我的问题,那么其他一些功能将无法工作。)

任何帮助深表感谢!!

import tkinter as tk
from tkinter import *
window = tk.Tk()
window.geometry("500x400")
window.configure(background='grey')

class person():
    def __init__(self):
        pass

    def test(self):
        print('something')


#title label
label = tk.Label(window, text = "title",bg = '#42eff5',fg ='red',width = 35, height = 5).pack()
#button
test_button = Button(window,text='something',command = person.test(self),width= 11,height = 2,bg='blue',activebackground = 'blue',fg='white').place(x = 10,y = 30)
window.mainloop()

标签: tkinterpython-3.7

解决方案


你需要创建一个人的实例,并调用那个人的方法。

somebody = person()
test_button = Button(.., command=somebody.test, ...)

推荐阅读