如何同时运行PyQt5无人机主界面与Tkinter地图程序?
无人机PyQt5主界面与Tkinter地图程序并行运行解决方案
背景
- 主界面基于PyQt5开发,负责展示dronekit获取的无人机状态数据及姿态指示器
- 因PyQt5内置地图组件无法正常工作,单独用tkintermapview开发了Tkinter地图程序,用于无人机位置可视化
- 两个程序单独运行均稳定,但需同时启动并连接同一无人机服务器
尝试的并行方案及问题
- multiprocessing多进程方案:启动后程序直接冻结,无法正常运行
- subprocess子进程方案:两个程序按触发顺序先后启动,无法实现真正的并行运行
最终解决方案
采用threading线程方案,将Tkinter地图程序作为子线程在PyQt5主程序的同一进程内启动,成功实现两个程序同时运行并连接同一无人机服务器。推测问题根源在于多进程模式下的内存隔离导致通信/资源访问异常,而线程模式下的共享内存空间避免了该问题。
内容的提问来源于stack exchange,提问作者bki
相关产品推荐
相关产品推荐

