详解 Qt 写 OpenGL 入门示例
2011-07-01 17:12 佚名互联网我要评论(0)字号:T | T
本文介绍的是详解 Qt 写 OpenGL 入门示例,不多说,先来看详细内容。
AD:
Qt 写OpenGL 入门示例是本文所介绍的内容。
其实我个人是很喜欢玩游戏的,为什么呢?只是因为我还无法制作游戏.所以,以前就看过一些...东西. 比如directx/opengl. 可惜无法入门,而当年拼命的记忆那个windows api版的hello world(vc++自动生成)...在一个星期后便忘记了.使得我对windows上的编程充满了阴影(在若干年后,我终于明白你不需要去记忆具体api, 因为环境会给你提示) - windows都没入门, 怎么开始directx哦?(不过无数次的hello world,也有好处,就是让我明白了windows平台的消息循环机制...这让我在若干年后在看到qt的app.exec()时,心有灵犀的想, 哦,进入了消息循环了...)
后来自然就看看qt,看看c++、PHP就不说了,一直搞这个的)等. 还有有比如SDL一类的搞搞,但始终不得其门而入,qt有自带的提供给opengl的窗口类的. 在我以前, 反正也试过,这样那样的错误就放弃了...
不过不知道为什么, 现在却很简单,(可能做任何事情都有简单和难的时候,只是未到时间吧).,假如你也想玩玩qt? opengl的话, 那么先具体下面一些东西:
(1)OpenGL编程指南 (书, 里面有代码的,咋们参考一些)
(2)装了qt库和环境(windows下qt里应该有自带opengl, 所以opengl的库就不提了)
(3)编译器
那么我们就开始了...反正是很简单的入门...写个main.cpp, 如下
1.yarco@coto?~/Documents/test/1?$?cat?main.cpp ?
2.#include?<QApplication>?
3.#include?"MyWidget.h" ?
4.int?main(int?argc,?char*?argv[])?//?感慨一下:?万年不变的argc,?argv阿,让
每个程序员都感到亲切 ?
5.{ ?
6.????????QApplication?app(argc,?argv); ?
7.????????MyWidget?w; ?
8.????????w.show(); ?
9.????????return?app.exec(); ?
10.}?
然后就是我们自己定义的类MyWidget:
1.yarco@coto?~/Documents/test/1?$?cat?MyWidget.h ?
2.#include?<QGLWidget>?
3.class?MyWidget?:?public?QGLWidget ?
4.{ ?
5.public: ?
6.????????MyWidget(QWidget*?parent?=?0)?:?QGLWidget(parent)?{} ?
7.protected: ?
8.????????void?initializeGL(); ?
9.????????void?resizeGL(int?w,?int?h); ?
10.????????void?paintGL(); ?
11.}; ?
12.//?qt文档里的哦 ?
13.//?三个xxxGL必须实现 ?
14.//?也就是在这里,我们就可以使用opengl的指令了哦... ?
15.yarco@coto?~/Documents/test/1?$?cat?MyWidget.cpp ?
16.#include?"MyWidget.h" ?
17.void?MyWidget::initializeGL() ?
18.{ ?
19.} ?
20.void?MyWidget::resizeGL(int?w,?int?h) ?
21.{ ?
22.} ?
23.void?MyWidget::paintGL() ?
24.{ ?
25.????????renderText(20,?100,?"Hello,?My?first?OpenGL?app."); ?
26.} ?
27.//?啥都没有,只有调用qt提供的renderText来输出文字?
然后就是qt的编译步骤了...(不详细描述)
结果的效果图如下:
小结:详解 Qt 写OpenGL 入门示例的内容介绍完了,希望本文对你有所帮助!。