首先是Tkinter还是PyQt?

时间:2014-04-14 21:37:50

标签: python user-interface tkinter

我试图通过做一些gui开发来巩固我的python知识,我应该尝试使用Tkinter还是直接跳转到PyQT以获得更好的IDE支持?

2 个答案:

答案 0 :(得分:2)

如果你的主要目标是巩固你的python知识,我会推荐Tkinter。它比较简单,已经安装了Python。

如果你想构建复杂的应用程序,我推荐PyQt,它更强大。

答案 1 :(得分:0)

我发现PyQt5和Tkinter在长时间运行的循环和处理GUI冻结方面有很大的区别。

在Tkinger和PyQt5中,由于未调用GUI更新过程,因此GUI将在长循环中冻结。要在Tkinter中解决此问题,请添加以下代码:

Tkinter解决方案


def update_app():
    root_winwod.update_idletasks()
    root_winwod.update()

for x in range(10000):
    if x % 100 = 0: # Triggers after 100 itterations. You can change this for your needs.
        update_app()
    
    # The rest of your loop code here

PyQt5解决方案 对于PyQt5,您可以调用“ QtCore.QCoreApplication.processEvents()”,但是所有网站都说不这样做。相反,您必须创建一个子进程,使用multiprocessing.Manager()创建多进程安全变量,确保在访问变量时对其进行锁定和解锁,使用subprocess.check_output()尝试捕获子进程中的错误,然后添加一个Qtimer()定期更新用户界面,请确保在应用退出时杀死进程,等等。

对于简单的应用程序,我建议运行Tkinter。运行子流程很好,只需花费大量额外的代码和精力即可确保一切正确。

相关问题