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