AttributeError: у объекта 'guiCreate' нет атрибута 'master' - Почему я не могу получить доступ к функциям из другого класса? - PullRequest
0 голосов
/ 20 января 2019

У меня есть три разных класса: один называется guiCreate, а другой называется iconBlockGen и main. Всякий раз, когда что-то истинно в iconBlockGen, iconBlockGen будет вызывать функцию (addPayment ()) из класса, созданного в gui (guiCreate), который добавляет новый элемент в список.

Я пытался создавать объекты разными и хакерскими способами, но у меня возникает одна и та же проблема, несмотря ни на что. Код:

blockgen.py:

import gui
import main

class iconBlockGen():

    def startLoop(self):
        gui.guiCreate.addPayment() # this is the command that causes the issue since it doesn't know know what the attribute is or whatever

gui.py

import blockgen
import tkinter as tk

class guiCreate(Frame):

    def __init__(self, master, **kwargs):

        pad = 3
        x = master.winfo_screenwidth() - pad
        y = master.winfo_screenheight() - pad

        Frame.__init__(self, master)
        self.recievingAdress = Listbox(self.master, width=int(x / 40), height=int(y / 24))
        self.recievingAdress.pack(side=tk.RIGHT)
        self.recievingAdress.place(x=x / 1.4, y=y / 10)

        self.master = master
        self._geom = '200x200+0+0'
        master.geometry("{0}x{1}+0+0".format(
            x, y))
        self.layout(x, y)


    def addPayment(self):
        self.recievingAdress.insert(1, 1515)

def test():

    icxObject = blockgen.iconBlockGen()

    root = Tk()
    t = guiCreate(root)
    handlerThrd = threading.Thread(target=icxObject.startLoop)
    handlerThrd.start()
    root.mainloop()

main.py

import gui

def main():
    gui.guiCreate.test()


if __name__ == '__main__':
    main()

1 Ответ

0 голосов
/ 20 января 2019

вы показали, что отправили в функцию цикла запуска графический интерфейс создания объекта , а затем функция доступа к функции добавила способ оплаты

теперь вы получаете доступ к классу insted объекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...