将panda3d用作pyqt5小部件的绑定

QPanda3D的Python项目详细描述


Qpand3D

pyqt5的一个工作panda3d包装器 目标是能够在同一个屏幕上显示panda3d和pyqt小部件。

这个包裹还在制作中。 工作原理:

  • 在一个seemlessly qwidget对象中创建一个panda3d世界,该对象可以与其他qt对象放在一起
  • 完全访问panda3d对象、灯光…

什么还不起作用:

  • 鼠标和键盘交互
  • Qwidget正在调整大小。目前,小部件的大小是固定的,这意味着您不能在不裁剪3d场景的情况下将其与其他qt小部件一起使用。

安装

pip install QPanda3D

用法

1-通过从panda3dworld继承来创建您的世界

fromQPanda3D.Panda3DWorldimportPanda3DWorldclassMyWorld(Panda3DWorld):Panda3DWorld.__init__(self)# from this point, act as if you are defining a classic panda3D environmentself.cam.setPos(0,-28,6)self.testModel=loader.loadModel('panda')self.testModel.reparentTo(render)

2-在你的主体中,创建一个你的世界的实例,创建一个q

fromQPanda3D.QPanda3DWidgetimportQPanda3DWidgetif__name__=="__main__":world=MyWorld()app=QApplication(sys.argv)appw=QMainWindow()appw.setGeometry(50,50,800,600)pandaWidget=QPanda3DWidget(world)appw.setCentralWidget(pandaWidget)appw.show()sys.exit(app.exec_())

小部件大小调整策略

从v 0.4开始,小部件会自动调整大小,而不会产生任何拉伸的人工制品。调整策略参数(在v 0.2中引入)的大小已被删除,因为不再需要它们。

fromQPanda3D.QPanda3DWidgetimportQPanda3DWidgetif__name__=="__main__":world=MyWorld()app=QApplication(sys.argv)appw=QMainWindow()appw.setGeometry(50,50,800,600)pandaWidget=QPanda3DWidget(world)appw.setCentralWidget(pandaWidget)appw.show()sys.exit(app.exec_())

您还可以告诉panda3dworld对象在创建视图时您喜欢的默认视图大小。

fromQPanda3D.Panda3DWorldimportPanda3DWorldclassMyWorld(Panda3DWorld):Panda3DWorld.__init__(self,width=1024,height=768)# from this point, act as if you are defining a classic panda3D environmentself.cam.setPos(0,-28,6)self.testModel=loader.loadModel('panda')self.testModel.reparentTo(render)

只需确保您的比率足够您的实际小部件大小。

待办事项

  • 添加鼠标和键盘交互

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Spring Boot中从CrudePository访问表的几列   biginteger如何将Java long转换为*无符号*baseX字符串(以及返回)?   NetBeans“方法”颜色的java深色主题不起作用   位操作如何在位集JAVA中左右移动位?   java如何在Spring Boot中调用函数后释放所有缓存数据   java如何在IntelliJ中调试子进程?   使用Jersey API处理java文件上传和缓冲内部   java如何在安卓上显示通知?   java如何使用mybatis 3传递动态字段和值   java第三方API在多模块Maven项目中看不到类   如何使用java在SQLServer2005中存储日期   java确实需要接口指针来提供多个版本的JNI函数表吗   java我的希伯来语文本在iText中是左对齐的   java在清单的java选项中配置密钥库。yml在铸造PCF中的应用