Я пишу GUI Tkinter для назначения и возникли проблемы с доступом к методам класса. Первый бит кода, который я вставил здесь, - это класс интерфейса верхнего уровня. Основная функция кода создает экземпляр этого класса, где «master» есть и экземпляр Tk().Доступ к методам класса из другого класса в Python 2.7
class PlotApp(object):
"""
Top level interface. Contains canvas and other widgets.
"""
def __init__(self, master):
# Initialise variables, world screen class and window features
master.wm_minsize(740, 480)
master.configure(bg = "gray80")
self.isFunctionDrawn = False
# Create objects
self.pointf = PointFrame(master)
self.canvas = Canvas(master, bg = "white", bd = 2, relief = SUNKEN,
highlightbackground = "gray80")
self.canvas.pack(expand = True, fill = BOTH, padx = 10, side = TOP)
self.functionf = FunctionFrame(master)
self.plotf = PlotFrame(master)
self.buttonf = ButtonFrame(master, self.canvas)
self.functionf
является экземпляром моей FunctionFrame
класса, который содержит метод, называемый getFunction()
. Я хочу кнопку в экземпляре класса ButtonFrame
для доступа к этому методу, но я не знаю, как это сделать. Я пробовал:
def testFunction(self):
self.parent.functionf.getFunction()
(где parent
является master
аргумент в первый бит кода), но это, кажется, называть functionf
как объект Tk()
, который, очевидно, не будет работать. Есть ли способ обойти это?
Спасибо, что кучи Underrun, вот и все. – Drizzlydayz