将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 linkedlist字符串排序算法   枚举类上出现maven错误的java ProGuard   java如何将ActionBar徽标设置为文本(TextView)?   swing当剪贴板内容在java之外发生更改时,是否可以得到通知   javascript从网络摄像头拍摄照片并保存到服务器上   java如何使用流将列表中的选定元素复制到另一个列表   使用eBay API获取产品详细信息的java   java ANTLR树中的子级数未知   java Selenium:访问'file:///C://Users//DELL//Desktop//Project%20UI//FastHome.html“剧本被拒绝了   如何在Java web项目中抛出一个无法捕获并结束执行的异常?   java有人能解释强引用、软引用、弱引用和虚引用之间的区别以及它们的用法吗?   java根据父级Android Studio的维度设置宽度和高度   包含对象数组列表的java序列化对象   返回奇怪字符的java libimobiledevice   java数据库无法以html格式存储   java Google play服务查找我的位置很慢   GCC原生Java编译器作为典型开源Java项目的平台有多实用?   java如何将从Web服务接收的二进制64格式的图像转换为实际图像?   java访问Tomcat 8上的属性文件