【问题标题】:Tkinter not responding while selenium is working硒工作时Tkinter没有响应
【发布时间】:2021-06-01 14:30:33
【问题描述】:

我知道发生这种情况是因为它们在同一个线程上工作,但我不知道如何在我的项目(here) 上使用线程。如果你想编辑代码,我知道有一些潜在的错误制造者,但我想稍后自己修复它们我现在只需要线程...(主要代码是 window.py)
谢谢

【问题讨论】:

    标签: python multithreading selenium tkinter


    【解决方案1】:

    线程非常简单!试试这个。

    import threading
    
    # -- your code --
    
    selenium_thread = threading.Thread(target=function_that_uses_selenium, args=(selenium_func_args,))
    tkinter_thread = threading.Thread(target=function_that_uses_tkinter, args=(tkinter_func_args,))
    
    selenium_thread.start()
    tkinter_thread.start()
    

    【讨论】:

    • 我可以像在多个函数中使用 tkinter 和 selenium 一样使用多个函数,还是应该像我的函数一样创建尽可能多的线程?
    • 尝试为每个控制主线程创建一个函数。在线程中运行的函数可以调用其他函数,因此请尝试将调用所有其他辅助函数的一个函数设为线程。
    • @acw1668 好建议!您只能为 selenium 函数创建线程,启动线程后流程将返回程序。在你调用 selenium_thread.start() 之后,调用 tk.mainloop() 你的程序会继续。
    • 谢谢我试试
    • 在某些平台上 tkinter 必须在主线程中。我认为这对 OSX 来说是正确的,不确定 Windows 和 Linux。
    猜你喜欢
    • 2019-12-29
    • 2016-01-10
    • 1970-01-01
    • 2019-01-10
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多