首页/文章/ 详情

基于PyQT的工业软件界面制作保姆级教程 | 网格渲染显示

22天前浏览951

续写之前的Pyqt教学:基于PyQT的工业软件界面制作保姆级教程 | 环境搭建,本次主要分享以下内容:

  1. 如何联用pyvista(vtk渲染库)
  2. 使用pygmsh画网格
  3. 界面居中显示

最后我们的软件界面上呈现这样的形式:

 

qt的界面设计功能很多,像我们经常使用的网易云音乐播放器就是用pt做出来的,我们这个系列的教学主要针工业软件研发领域,聚焦于有限元前后处理显示,读者可以在此基础上进行升级扩展。


联动pyvista

pyvista库是非常优秀的后处理渲染库,对于pyvista库的介绍,前面有非常详细的推文介绍,感兴趣的读者可翻阅往期干货推文:VTK库学习 | 百万级自由度有限元模型云图绘制只需0.02秒!

我们现在想的是如何让pyvista渲染后的图内嵌入软件中?pyvista提供了非常友好的pyqt5接口:pyvistaqt,用户导入将其导入后即可将pyvista嵌入进qt中。

具体使用方法:

from pyvistaqt import QtInteractor
-------
self.frame = self.ui.pyvistaFrame
self.plotter = QtInteractor(self.frame)
self.ui.verticalLayout.addWidget(self.plotter.interactor)

pyvistaFrameverticalLayout的来源:

用户绘图时直接self.plotter.add_mesh即可。

pygmsh

pygmsh是著名开源网格划分程序—Gmsh的Python接口,github地址为:https://github.com/nschloe/pygmsh,相关具体介绍可百度。本小节使用pygmsh画一个最基础的圆形几何区域,然后进行三角形网格划分:

# 圆心
fixPoints = np.array([
    [0.00.00.0]
])
# 调用pygmsh
with pygmsh.geo.Geometry() as geom:
    geom.add_circle(
        fixPoints[0],# 圆心
        radius=1.0,# 半径
        mesh_size=0.2,# 网格密度
    )
    self.geom = geom
# 网格生成
    mesh = self.geom.generate_mesh()

以上代码片进行了详细注释,不多做解释。

结合pyvista进行渲染显示:

darg = dict(
    show_edges=True,
    line_width=1,
    color='#a3c2c3',
    style='surface',  # wireframe
)
self.plotter.add_mesh(meshio_mesh, **darg)

运行程序后的结果就是本文开头的效果图:

窗口居中

有时在qt designer中设计好的界面位置,但是每次在IDE中运行后,窗口位置就奇奇怪怪,不是在屏幕最中间,如何让运行后的窗口位置在最中间看着更加舒服呢?

defcenter(self):# 定义一个函数使得窗口居中显示
# 获取屏幕坐标系
        screen = QDesktopWidget().screenGeometry()
# 获取窗口坐标系
        size = self.geometry()
        newLeft = (screen.width() - size.width()) / 2.0
        newTop = (screen.height() - size.height()) / 4.5
        self.move(int(newLeft), int(newTop))

添加以上的函数,用户在使用过程中,直接复 制就行,初始化时调用该函数即可:self.center()

本次的分享就结束啦,主要带着大家使用pygmsh生成网格,然后嵌入在qt界面中,文字性介绍可能会有点抽象,这两天会录制会录制本期推文的视频,更加形象的分享,第一时间将发布在B站中,欢迎持续关注!

下次计划分享:

  1. 图标的添加
  2. 状态栏显示
  3. 界面美化
  4. pygmsh网格生成示例

本次的教学代码存放在知识星球中,感兴趣的小伙伴可在后台回复:星球,即可加入,对代码的任何疑问欢迎在星球中进行提问。

来源:易木木响叮当
ACTpython渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-07-12
最近编辑:22天前
易木木响叮当
硕士 有限元爱好者
获赞 201粉丝 191文章 295课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈