Как вызвать функцию класса с помощью кнопки tkinter? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать программу, которая печатает что-то каждый раз, когда я нажимаю кнопку, но это должно быть сделано с использованием класса.

Когда я запускаю свой код, я получаю эту ошибку: NameError: name ' self 'не определено

(я не хочу помещать 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()

1 Ответ

1 голос
/ 26 марта 2020

Вам необходимо создать экземпляр этого человека и вызвать метод для этого человека.

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