下面是我目前拥有的代码。我是初学者程序员,正在写一个小程序,将自动化一些初级设计的工作流程(生物学家/生物信息学家代表)。在
我现在的问题是我对OOP如何与TKinter一起工作缺乏理解。但我还是在youtube上看了很多相关的文章,我还是看了很多视频。我目前的理解是,每个窗口都应该是自己的对象,上面的窗口是其父对象。我试着用我的程序来做这个。 目前我有两个类,AUTOPRIMER和BlastAPI。自动驾驶仪是主窗口。在我创建的窗口中有一个按钮,当单击时会打开一个新窗口。据我所知,我为这个窗口创建了一个新的对象,名为BlastAPI,它处理我程序的特定需求。我看到很多指南建议将父对象放在新对象的init中,但是我看到了从父对象到主对象再到args*,kwargs**的初始化变化。什么时候合适?另外,目前堆栈跟踪提供了这种反馈,因为它甚至不能正确编译。在
Traceback (most recent call last):
File "/Users/Thunderpurtz/Desktop/CGIStuff/AUTOPRIMER/autoprimercode/test1.py", line 201, in <module>
autoprimer = AUTOPRIMER(root)
File "/Users/Thunderpurtz/Desktop/CGIStuff/AUTOPRIMER/autoprimercode/test1.py", line 105, in __init__
self.blast = BlastAPI(self)
File "/Users/Thunderpurtz/Desktop/CGIStuff/AUTOPRIMER/autoprimercode/test1.py", line 150, in __init__
eValueSetting = Entry(parent)
File "/anaconda3/lib/python3.6/tkinter/__init__.py", line 2673, in __init__
Widget.__init__(self, master, 'entry', cnf, kw)
File "/anaconda3/lib/python3.6/tkinter/__init__.py", line 2289, in __init__
BaseWidget._setup(self, master, cnf)
File "/anaconda3/lib/python3.6/tkinter/__init__.py", line 2259, in _setup
self.tk = master.tk
AttributeError: 'AUTOPRIMER' object has no attribute 'tk'
[Finished in 0.289s]
从根本上说,我认为我对gui编程的理解并不扎实,所以如果有人能提供一些见解,那就太好了。如果这个问题有点宽泛,我很乐意在评论中澄清。在
^{pr2}$谢谢各位。在
好吧,这里有很多工作要做。我想丢失的部分是主代码的一部分,但是没有它们测试代码是不可能的。我尽我所能,设置你的类从它们需要的tkinter对象继承。根据您在
BlastAPI
类中的按钮命令,我假设这个类应该是一个Toplevel()
窗口。在我已经对您的代码做了一些更改,而且没有
Bio.Blast
我已经将一些事情更改为我认为您可能需要做的事情。在相关问题 更多 >
编程相关推荐