python用pyqt5为程序添加GUI后功能和界面只能二选一运行
情况是这样的,最近我为我的python程序添加一个GUI,整合到一起的时候点解button运行程序功能代码的时候却失去响应了。
因为我没有注释代码中的print,因此可以看到功能能正常运行,但是界面却失去响应了。
后来意识到应该是线程的问题,然后尝试了使用
threading模块甚至
multiprocessing模块来尝试都解决不了
这是涉及到线程或进程的问题?如果是为什么我尝试将功能当代码的调用封装到一个函数中传到threading中开启新线程却依然解决不了。
请问大神们都是怎么解决GUI应用程序的线程问题的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
这个要看他的实现,我觉得那个while没用
回复
好似是没用,但是那个join貌似是必须要有的,因为我注释掉后代码运行成功后就退出来了
回复
不过仔细想一想 这个while应该是用来无限循环休眠看门狗的,设定一个时间让他隔一定时间监控一下目录变化。但是我现在的问题就是找出来了。需要解决这个阻塞了GUI
引用来自“mr_chip”的评论
贴个button的slot代码
回复
但是,我现在将看门狗的代码注释后,单纯测试自己写的逻辑功能和GUI共存也不能实现
回复
奇迹....我重打开pycharm就可以了
回复
但是我仍然需要点击按钮运行完功能后自动进入目录监控,等有新增的文件 程序继续重复点击按钮时候的功能
回复
开一个监控目录的线程,然后用signal和slot来和UI交互
回复
@mr_chip :感谢,我已经解决了阻塞了。然后我剩余最后的一点疑惑就是,我将原先在控制台print的内容打印在文本框中,结果发现GUI不一会就自己退出了。难道文本框还有内容溢出的坑的么?像我们平时的exe安装包 那么多信息在文本框打印出来也不会说崩掉什么的。请问您知道这是什么原因么?
引用来自“mr_chip”的评论
贴个button的slot代码
贴个button的slot代码