首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何阻止Pyzo调用mainloop循环?

如何阻止Pyzo调用mainloop循环?
EN

Stack Overflow用户
提问于 2016-07-29 03:31:30
回答 1查看 960关注 0票数 0

我曾经使用Python的Interactive,然后我“升级”到Pyzo (因为IEP被合并到Pyzo)。我的一个程序使用tkinter创建GUI。过去的代码工作得很好:我会将文件作为脚本运行,然后在解释器中调用main,这将启动应用程序。

代码骨架如下所示。

代码语言:javascript
复制
def main():
    class Application(tk.Frame):
        def __init__(self, master=None):
            # a bunch of stuff
        # several more methods here

    front=Application()
    front.mainloop()
# then I can either call main in the interpreter, or I can add this:
# the name==main part is to handle some multiprocessing that occurs within the application class
if __name__=="__main__":
    main()

这在IEP中起了很大的作用。但是,在Pyzo中,main()从未启动,更确切地说,它启动了,但是gui从未出现,也不允许我做任何事情。相反,我得到了这样的消息:注意: GUI事件循环已经在pyzo内核中运行。请注意,要进入主循环的函数不会阻塞。

当我使用CPython 3或PyPy解释器时,这个消息会在Pyzo中出现,但当我使用Anaconda 3时(实际上我需要使用PyPy,因为我所做的工作在计算上是昂贵的)。

另一种选择是不使用Pyzo,但这并不有趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 14:57:51

我一段时间前就发现了答案,但直到现在我才回过头来发布答案。本质上,Pyzo本身有一个试图检测GUI的设置。将该设置从“自动”切换到“无”设置解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38650087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档