Python Tkinter first还是PyQt?

Python Tkinter first还是PyQt?,python,user-interface,tkinter,Python,User Interface,Tkinter,我正试图通过做一些gui开发来巩固我的python知识,我应该尝试Tkinter还是直接跳到PyQT以获得更好的IDE支持?如果您的主要目标是巩固您的python知识,我建议使用Tkinter。它更简单,并且已经安装了Python 如果您想构建复杂的应用程序,我推荐PyQt,它功能更强大。我发现PyQt5和Tkinter在长时间运行的循环和处理GUI冻结方面有很大的不同 在Tkinger和PyQt5中,GUI将在长循环期间冻结,因为没有调用GUI更新过程。要在Tkinter中修复此问题,请添加以

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

如果您的主要目标是巩固您的python知识,我建议使用Tkinter。它更简单,并且已经安装了Python


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

我发现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 iterations. You can change this for your needs.
        update_app()
    
    # The rest of your loop code here
PyQt5解决方案

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

for x in range(10000):
    if x % 100 = 0: # Triggers after 100 iterations. You can change this for your needs.
        update_app()
    
    # The rest of your loop code here
对于PyQt5,您可以调用
QtCore.QCoreApplication.processEvents()
,但所有网站都说不要这样做。相反,您必须创建子流程,使用multiprocessing.Manager()创建多进程安全变量,确保在访问变量时锁定和解锁变量,使用subprocess.check_output()尝试捕获子流程中的错误,添加Qtimer()定期更新UI,确保在应用程序退出时终止进程,以此类推


对于简单的应用程序,我建议运行Tkinter。运行子流程很好,只是需要大量额外的编码和努力才能确保一切正常。

您希望构建哪种GUI?我现在才刚刚开始,所以在学习了基础知识之后,我将在标准模式下使用基于Windows calculator的跨平台计算器。在这之后,谁知道呢,也许是更复杂的东西,比如使用谷歌或Bing地图的调度应用程序。我同意答案,tkinter可能更适合你的需要!在标准模式下,基于Windows calc的跨平台计算器对Tkinter来说足够简单吗?在我看来,是的。您只需要几个按钮和一个文本小部件。组织布局的方式由您决定。我认为您将使用一些布局,而不仅仅是一个。然而,我想网格布局是组织按钮的一个非常好的选择。什么小部件可以作为文本小部件和网格的容器?我认为“功能更强大”有点夸张。虽然您不能轻松地制作一堆漂亮的动画或嵌入网页,但对于大多数人来说,tkinter的python gui工具包功能强大。