QT creator下怎么添加子工程

QT creator下怎么添加子工程,第1张

按你的步骤来说,你只是把头文件源文件copy到你工程目录下了,但是你并没有把你的头文件还有源文件加入你的.pro文件中 你需要在你的 pro 文件加入你的头文件和源文件。找到 HEADERS 关键字,在后面加上你的头文件。如果你的头文件名字是 xxx.h

1、选择工程文件,点击右键,选择AddNew。

2、选择QT,选择Qt设计师界面类,选择Choose。

3、选择需要就界面类,选择下一步。

4、输入新建工程的名称,选择下一步,完成。

我自己学QT时的笔记,供参考

QT下构建OPENGL开发环境

首先在工程文件下加入环境配置 .pro

QT += qt3support //支持qt3支持

QT += opengl //OPENGL库支持

nehewidget.h文件

#include <qgl.h> //要加入的库

#include <QtGui/qevent.h> //要加入的库

class NeHeWidget : public QGLWidget //任何OPENGL的窗体都要从QGLWidget类中派生

{

Q_OBJECT //宏定义只有加入了Q_OBJECT,你才能使用QT中的signal和slot机制

public:

NeHeWidget( QWidget* parent = 0, const char* name = 0, bool fs = false )

~NeHeWidget()

protected:

void initializeGL() //初始化窗口

void paintGL() //画窗口

void resizeGL( int width, int height ) //重置窗口

void keyPressEvent( QKeyEvent *e ) //按钮事件

protected:

bool fullscreen //全屏事件

}

源文件

NeHeWidget::NeHeWidget( QWidget* parent, const char* name, bool fs )

: QGLWidget( parent, name ) //二个QGLWidget 需要的构造参数

{

fullscreen = fs

setGeometry( 0, 0, 640, 480 ) //设置大小

setCaption( "NeHe's OpenGL Framework" )

if ( fullscreen )

showFullScreen() //设置全局

}

NeHeWidget::~NeHeWidget()

{

}

void NeHeWidget::initializeGL()

{

glShadeModel( GL_SMOOTH )

glClearColor( 0.0, 0.0, 0.0, 0.0 )

glClearDepth( 1.0 )

glEnable( GL_DEPTH_TEST )

glDepthFunc( GL_LEQUAL )

glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST )

}

void NeHeWidget::paintGL()

{

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )

glLoadIdentity()

}

void NeHeWidget::resizeGL( int width, int height )

{

if ( height == 0 )

{

height = 1

}

glViewport( 0, 0, (GLint)width, (GLint)height )

glMatrixMode( GL_PROJECTION )

glLoadIdentity()

gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 )

glMatrixMode( GL_MODELVIEW )

glLoadIdentity()

}

void NeHeWidget::keyPressEvent( QKeyEvent *e )

{

switch ( e->key() )

{

case Qt::Key_F2:

fullscreen = !fullscreen

if ( fullscreen )

{

showFullScreen()

}

else

{

showNormal()

setGeometry( 0, 0, 640, 480 )

}

updateGL()

break

case Qt::Key_Escape:

close()

}

}

main.cpp

#include <qapplication.h>

#include <qmessagebox.h>

#include "nehewidget.h"

int main( int argc, char **argv )

{

bool fs = false

QApplication a(argc,argv)

switch( QMessageBox::information( 0,

"Start FullScreen?",

"Would You Like To Run In Fullscreen Mode?",

QMessageBox::Yes,

QMessageBox::No | QMessageBox::Default ) )

{

case QMessageBox::Yes:

fs = true

break

case QMessageBox::No:

fs = false

break

}

NeHeWidget w( 0, 0, fs )

a.setMainWidget( &w )

w.show()

return a.exec()

}

//QT中用OPENGL画图时,记得用UPDATE(),更新数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11569938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存