将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 SSH连接到远程Linux服务器,但不使用第三方库   java使用REST assured的XmlPath查找所有XML节点   java员工入围名单   使用jlinked java launcher启用jlink预览功能   java我的ArrayList对象没有打印出我想要的对象属性   java父标记在FXML文件中没有默认属性警告?   mongodb使用Java复制集合mongodb,而不使用迭代器进行DbAdmin登录   java JDBC DatabaseMetaData为oracle12C中的列大小返回“0”   java在登录后设置会话属性   java中的Html转义?   mysql JAVA面向对象数据库连接   java让socket在安卓中保持活力   java放射组。setOnCheckedListener未按预期工作。(更改单选按钮的颜色)   java LocalContainerEntityManagerFactoryBean实例化未找到persistenceunit   java无法在运行时(运行活动)更改配置(语言环境)