在导入模块之前启动tkinter GUI(延迟导入到某些类实例化)


  • 免责声明 *嘿,在有人说这个问题已经存在之前,我已经检查了他们要么与我试图做的事情没有关系,要么我不了解它们。例如,我尝试了一个Splash屏幕TKINTER SHOW SHOW SPASS屏幕并隐藏主屏幕,直到__init__完成但是直到外部脚本完成导入之前,它仍然不会启动。

好的,所以我有一个TKINTER应用程序,该应用程序使用外部脚本中的后端功能。该脚本正在使用大型数据集,因此计算需要15-20秒的时间,尽管在初始加载后没有延迟。

问题在于,当我将此功能导入我的TKINTER GUI脚本时,要启动它在加载模块时需要一段时间。

我想知道是否有一种方法可以首先启动我的GUI,然后在应用程序运行时加载模块,或者在模块导入时加载屏幕。

任何有用的链接都可以做到,我尝试与外部脚本中的构造函数混乱,但是在该脚本中,我在该脚本中的所有函数都需要一堆代码。

中的所有函数都需要。

事先感谢您的任何建议。

代码:

from Content import print_similar_animes # functions from external script
from Content import get_id_from_partial_name

#These functions are within a class and are only 
                        #called when a button is  clicked.
def GetPartial(self):  
    partial=self.NameEntry.get()
    get_id_from_partial_name(partial).
def Rec(self):
    user_anime=self.NameEntry2.get()
    print_similar_animes(user_anime)

它看起来与UI构建相连。他们不必那样。将其解除,仅在单击按钮后加载它,或使用after()延迟或加载小块数据。或使用某些人会说的线程。请参阅此处的after方法。

哈哈我解决了它。要延迟导入直到班级实例化,导入必须在方法内。

喜欢:

def GetPartial(self): 
    from Content import get_id_from_partial_name #import here 
    partial=self.NameEntry.get()
    get_id_from_partial_name(partial).
def Rec(self):
    from Content import print_similar_animes # import here
    user_anime=self.NameEntry2.get()
    print_similar_animes(user_anime)

注意 - 将导入放入类,但在任何方法之外仍会导致导入在初始化模块时发生。

最新更新