DEBUG pyqt + ntdll.dll + 随机异常退出

        最近在开发一自动控制的软件,需要实时刷新曲线图,打包部署发现程序会随机崩溃,最艹的是还让部署的那台工控机上另一自控软件崩溃的频率增加了。

        于是定位问题,看windows的应用程序日志发现每次崩溃都指向ntdll.dll(c0000374堆损坏),于是考虑是不是工控机太久没更新的问题,同时网上直接检索ntdll.dll问题的结果也是让用各种方式进行更新或替换。在工控机上找到ntdll.dll,发现果然和开发环境上的ntdll.dll存在版本差异,于是进行替换,后因权限问题作罢。

        但是问题得解决,于是考虑不如加个程序自动启动,检测进程,如果里面没有就直接再启动一个。

        然后偶然发现,开发环境这软件也崩。。。

        最后定位到线程问题了,因为需要实时刷新,同时主界面还需要别的交互,考虑不卡主线程界面,就在子线程(threading.Thread)里进行了数据I/O,数据处理和作图操作。而图表chartView和作图函数都是在主线程里的,结合查到的两条信息:

        1、Python程序因为ntdll.dll和QtGui4.dll崩溃

        2、子线程不能更新主线程UI

        把之前threading.Thread实现的线程作图,改成了基于QThread的信号收发,在主线程里进行最后一步作图,问题得到了解决

PyCharm 2020.1是集成开发环境(IDE),主要用于编写和调试Python代码。它具有许多强大的功能,例如代码自动补全、调试器、版本控制集成等,使开发人员更加高效地编写代码。 PyQt是一个用于创建图形用户界面(GUI)应用程序的Python库。它是对Qt应用程序框架的Python绑定,提供了丰富的界面组件和功能。通过PyQt,开发人员可以轻松地创建跨平台的GUI应用程序。 Qt Designer是Qt开发工具包的一部分,它是一个可视化设计工具,用于创建Qt应用程序的用户界面。它提供了丰富的界面组件和布局选项,开发人员可以通过拖放和设置属性来设计界面。Qt Designer还可以将设计的界面转换为Python代码,以便在PyQt中使用。 在PyCharm 2020.1中使用PyQtQt Designer的案例可以是创建一个简单的GUI应用程序。首先,我们可以在PyCharm中创建一个新的PyQt项目,然后使用Qt Designer来设计应用程序的界面。在Qt Designer中,我们可以添加按钮、标签、文本框等界面组件,并设置它们的属性和布局。 然后,我们可以将设计好的界面保存为.ui文件,并将其转换为Python代码。在PyCharm中,我们可以使用PyQt的工具来将.ui文件转换为.py文件,并在代码中导入生成的Python模块。 接下来,我们可以在PyCharm中编写代码来处理界面组件的事件,例如按钮的点击事件。通过PyQt提供的信号与槽机制,我们可以连接界面组件的信号和事件处理函数,以实现交互逻辑。 最后,我们可以在PyCharm中运行项目,测试和调试应用程序的功能。PyCharm提供了调试器和代码分析工具,帮助我们找出潜在的错误并进行修复。 总之,使用PyCharm 2020.1、PyQtQt Designer,我们可以方便地开发跨平台的GUI应用程序,通过可视化设计界面和编写Python代码,使应用程序更加易于维护和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值