Python 3.x Python与其他对象的集成

Python 3.x Python与其他对象的集成,python-3.x,class,oop,object,model-view-controller,Python 3.x,Class,Oop,Object,Model View Controller,修复:我将Radiobutton的调用从视图的init移动到控制器,如下所示: 类控制器(对象): 定义初始化(自): self.model=model() 打印('开始视图初始化') self.view=视图(self.importieren、self.exportieren、self.beenden、self.J5、self.J6、self.J7、self.J8、self.J9、, self.J10,self.J11,self.J12,self.JA,self.tabelle_sorti,s

修复:我将Radiobutton的调用从视图的init移动到控制器,如下所示:

类控制器(对象):
定义初始化(自):
self.model=model()
打印('开始视图初始化')
self.view=视图(self.importieren、self.exportieren、self.beenden、self.J5、self.J6、self.J7、self.J8、self.J9、,
self.J10,self.J11,self.J12,self.JA,self.tabelle_sorti,self.hinzufugen,self.zuordnen,
self.ande,self.JA,self.model.ausgabe('projekte'),self.tabelle_更新,self.a1,self.a2,self.a3,
self.a4、self.a5、self.a6、self.a7)
打印('完成初始化')
self.wahlen=('sErst','sZweit','sDritt')
self.delimiter={'imp\u s':无,'imp\u p':无,'exp':无}
self.dchosen=无
self.slcsv='schuelerliste.csv'
self.plcsv='projektliste.csv'
self.double=False
self.andernx=“”
self.view.radios['jahrg-Alle'].invoke()
self.tabelle()
self.view.table['main'].bind('',self.treevent)
#自传
如果self.model.ausgabe('schueler'):
自我重要性(真)
self.view.mainloop()
def选项卡更新(self,fetchshlr=None,fetchprj=None):
打印('开始更新')
如果fetchshlr为None:
fetchshlr=self.model.ausgabe('schueler')
如果fetchprj为无:
fetchprj=self.model.ausgabe('projekte')
self.view.tableup(fetchshlr、fetchprj)
此调用在视图准备就绪之前调用了函数,因此导致了错误。谢谢你的帮助
我尽量不提问题,但经过几个小时的搜索,我不得不这样做。 我目前正在编写一个程序,最近以MVC模式将主文件分成三部分。我有一个函数可以更新树视图作为一个表。但是这个函数(只有那个)说:

Tkinter回调中出现异常\ 回溯(最近一次呼叫最后一次):\ 文件“C:\Users\…\Python38\lib\tkinter\ \uuuuu init\uuuuu.py”,第1883行,在调用中__\ 返回self.func(*args)\ tabelle_update中第184行的文件“C:/Users/../Controller.py”\ self.view.table['main'].tag_configure(i[0],background='white')\ AttributeError:“控制器”对象没有属性“视图” 我已经尝试过使用lambda(如果你问为什么,因为有人在互联网上说了),但它完全阻止了该功能的工作。此外,我认为它与此有关:

{'model':,'view':,…}
这是对附加属性的提取,我认为它和0x处的缺失有关。。。“视图”中的零件如“模型”中所示
请帮我把这个安装好并运行起来

下面是我的重要代码部分(如果您需要更多,请编写)
请注意,不同的类位于不同的文件中,并且已正确导入

tabelle_update和View class tableup下的programmcode中的主要更改 我试着将视图的重部件移动到视图中,但没有修复任何问题

类控制器(对象):
定义初始化(自):
self.model=model()
self.view=视图(self.importieren、self.exportieren、self.beenden、self.J5、self.J6、self.J7、self.J8、self.J9、,
self.J10、self.J11、self.J12、self.tabelle_更新、self.tabelle_sorti、self.hinzufugen、,
self.zuordnen,self.ande,self.tabelle_更新,self.model.ausgabe('projekte'),
self.tabelle_更新,self.a1,self.a2,self.a3,self.a4,self.a5,self.a6,self.a7)
self.wahlen=('sErst','sZweit','sDritt')
self.delimiter={'imp\u s':无,'imp\u p':无,'exp':无}
self.dchosen=无
self.slcsv='schuelerliste.csv'
self.plcsv='projektliste.csv'
self.double=False
self.andernx=“”
self.tabelle()
self.view.table['main'].bind('',self.treevent)
#自传
如果self.model.ausgabe('schueler'):
自我重要性(真)
打印(自我记录)
self.view.mainloop()
def tabelle(自我):
fetch=self.model.ausgabe('schueler'))
self.view.shlr_tabelle(获取)
def选项卡更新(self,fetchshlr=None,fetchprj=None):
打印('开始更新')
如果fetchshlr为None:
fetchshlr=self.model.ausgabe('schueler')
如果fetchprj为无:
fetchprj=self.model.ausgabe('projekte')
self.view.tableup(fetchshlr、fetchprj)
类视图(ttkthemes.tk):
定义初始(自身、进口、出口、bee、j5、j6、j7、j8、j9、j10、j11、j12、ja、tabsort、hin、zord、ande、scht、,
prjt、aktutable、a1、a2、a3、a4、a5、a6、a7):
#印刷(TTK主题)#zum Ausgeben der verfügbaren主题
ttkthemes.ThemedTk.\uuuu init\uuuuuuu(self,theme='breeze'))
自身名称(“项目名称”)
自几何体('800x300')
self.minsize(800300)
可自行调整大小(宽度=真,高度=真)
#bestimmen der回调
self.callback\u imp=imp
self.callback\u exp=exp
self.callback\u bee=bee
self.radiocom={'jahrg':[j5,j6,j7,j8,j9,j10,j11,j12,ja],'ande':[a1,a2,a3,a4,a5,a6,a7]}
self.tabelle\u sorti=tabsort
self.callback_aktut=aktutable
self.callback_zord=zord
self.callback_hin=hin
self.callback_ande=ande
self.callback_scht=scht
self.callback_prjt=prjt
#塔贝尔
self.scrollbars={'main':滚动条(self.rahmen[2],orient=“vertical”)}
self.table={'main':Treeview(self.rahmen[2],yscrollcommand=self.scrollbars['main'].set,height=200)}
self.scrollbars['main'].pack(side=RIGHT,fill=BOTH)
self.rahmen[1].pack()
self.rahmen['popup_pro'].pack(fill=X)
赛尔夫·拉姆
print("before self.view is defined")
self.view = View(...)
print("after self.view is defined")
print("using self.view...")
self.view.table['main'].tag_configure(i[0], background='white')