QT 5.0导入库文件

在使用qt进行开发的过程之中,不管是qt的图形化开发还是表格开发,要想要软件开发更加便捷仅仅使用到qt自带的一些库是无法满足开发需求的。更何况,qt是一款比较贴合电子硬件化的开发工具。这个时候,我们就需要使用到第三方库文件来满足我们的开发需求。对于使用库文件而言,在项目中正确导入相关需使用到的文件是最基础的步骤。

qt中导入库文件进行使用有两种方法:

第一种方法:使用qt菜单项进行导入

第一步:右击项目标头选择”添加库“或者在Pro文件内部进行右键选择”添加库“

第二步:选择”外部库“后点击”下一步“

第三步:选择需使用到的平台,选择头文件所在路径和需要导入使用的库文件后点击”下一步“

第四步:点击”完成“,pro文件内会自动添加框内的代码

pro 文件:

第二种方法:

第二中导入方法是自己手动在pro文件夹导入库文件和头文件,代码与第一种自动生成的代码一致,只是少了些导入的步骤

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 PyOpenGL 来加载和渲染 obj 模型,然后将其与 PyQt 中的 OpenGLWidget 集成。以下是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QOpenGLWidget from PyQt5.QtGui import QOpenGLShader, QOpenGLShaderProgram from PyQt5.QtCore import Qt from OpenGL.GL import * from OpenGL.GLU import * from objloader import ObjLoader class MyOpenGLWidget(QOpenGLWidget): def __init__(self, parent=None): super().__init__(parent) self.obj = ObjLoader() self.shaderProgram = QOpenGLShaderProgram() def initializeGL(self): glClearColor(0.0, 0.0, 0.0, 1.0) glEnable(GL_DEPTH_TEST) glEnable(GL_LIGHTING) glEnable(GL_LIGHT0) glEnable(GL_COLOR_MATERIAL) glEnable(GL_NORMALIZE) self.obj.load("model.obj") vertexShader = QOpenGLShader(QOpenGLShader.Vertex) vertexShader.compileSourceCode(""" attribute vec3 a_position; attribute vec3 a_normal; varying vec3 v_normal; uniform mat4 u_modelViewProjectionMatrix; uniform mat4 u_normalMatrix; void main() { gl_Position = u_modelViewProjectionMatrix * vec4(a_position, 1.0); v_normal = vec3(u_normalMatrix * vec4(a_normal, 0.0)); } """) fragmentShader = QOpenGLShader(QOpenGLShader.Fragment) fragmentShader.compileSourceCode(""" varying vec3 v_normal; void main() { vec3 lightPosition = vec3(0.0, 0.0, 1.0); vec3 lightColor = vec3(1.0, 1.0, 1.0); vec3 ambientColor = vec3(0.2, 0.2, 0.2); vec3 diffuseColor = lightColor * max(dot(v_normal, normalize(lightPosition)), 0.0); gl_FragColor = vec4(ambientColor + diffuseColor, 1.0); } """) self.shaderProgram.addShader(vertexShader) self.shaderProgram.addShader(fragmentShader) self.shaderProgram.link() def resizeGL(self, width, height): glViewport(0, 0, width, height) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45.0, width / height, 0.1, 100.0) glMatrixMode(GL_MODELVIEW) def paintGL(self): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() glTranslatef(0.0, 0.0, -5.0) glRotatef(self.rotation, 0.0, 1.0, 0.0) self.shaderProgram.bind() self.shaderProgram.setUniformValue("u_modelViewProjectionMatrix", self.modelViewProjectionMatrix()) self.shaderProgram.setUniformValue("u_normalMatrix", self.normalMatrix()) self.obj.render() self.shaderProgram.release() def modelViewProjectionMatrix(self): modelViewMatrix = QMatrix4x4() modelViewMatrix.translate(0.0, 0.0, -5.0) modelViewMatrix.rotate(self.rotation, 0.0, 1.0, 0.0) projectionMatrix = QMatrix4x4() projectionMatrix.perspective(45.0, self.width() / self.height(), 0.1, 100.0) return projectionMatrix * modelViewMatrix def normalMatrix(self): return self.modelViewProjectionMatrix().normalMatrix() def setRotation(self, rotation): self.rotation = rotation self.update() if __name__ == '__main__': import sys app = QApplication(sys.argv) mainWindow = QMainWindow() glWidget = MyOpenGLWidget(mainWindow) mainWindow.setCentralWidget(glWidget) mainWindow.show() sys.exit(app.exec_()) ``` 其中,ObjLoader 是一个简单的 obj 文件加载器,可以从网上找到。在这个例子中,我们使用了 Phong 光照模型来渲染模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值