0
我想要做的是创建一个类(显示),我可以从任何其他类修改画布。从一个单独的类修改tkinter画布
from tkinter import *
#--------# Main #--------#
class Main():
def Setup(self):
Display('makeCanvas')
prun('Setup')
#--------# Display #--------#
class Display(object):
def __init__(self, cmd):
win = Tk()
win.geometry('500x500')
self.winCanvas = Canvas(master=win)
if(cmd == 'makeCanvas'):
self.winCanvas = Canvas(width=500, height=500)
elif(cmd == 'startLoop'):
mainloop()
elif(cmd == 'getCanvas'):
self.sendCanvas()
else:
print('Failed')
self.winCanvas.pack()
def sendCanvas(self):
return self.winCanvas
#--------# ConsolePrint #--------#
class ConsolePrint(Display, object):
def __init__(self, text_given):
self.tx_g = text_given
self.totalText = ''
self.canvas = Display('getCanvas')
----> self.textFeild = self.canvas.create_text()
def Console(self):
print("Console")
self.totalText += (self.tx_g + '\n')
self.textFeild.append(text=('Console: ' + self.totalText))
self.textFeild.pack()
class prun(object):
def __init__(self, text_given):
print("Printing")
printer = ConsolePrint(str('*Running: ' + str(text_given) + '*'))
print("Now the Console")
printer.Console()
Main().Setup()
及其这条线的不工作的代码: self.textFeild = self.canvas.create_text()
,来了是误差: AttributeError的: '显示' 对象没有属性'create_text'
我知道我正在调用Display中的一个名为'create_text'的函数,但我不知道如何调用tkinter中的Canvas方法而不继承它。我试图在显示中继承Canvas,而我得到的错误是: TypeError:无法为基础对象创建一致的方法解析顺序(MRO),Canvas
所有帮助表示赞赏。
嘿,你拼写的字段错了:) – W1ll1amvl 2014-09-05 23:38:28