It's a necessary trade-off for cool things like introspection. The preprocessor (meta-object compiler) works great. Don't be scared of it
You'll often use Qt Linguist to create the actual translations. Qt Linguist will extract all the tr() (and some other to-be-translated strings like strings in your .ui files) and give you an interface for translating your apps. Linguist is quite useful. It automatically detects which strings have changed or were added at a later time, for example. It also matches your wording to previous strings. Translations also support arguments etc. See the Linguist manual for more info - it is a very complete manual http://doc.trolltech.com/4.5/linguist-manual.html
You basically just have to create a widget which inherits from QGLWidget, and that's it OpenGL initialization should then take place in a reimplemented initGL() function and painting should happen in a reimplemented paintGL() function - although you can also do very cool stuff like mix QPainter's 2D painting API with OpenGL and render it all with OpenGL acceleration (see the overpainting example) or use the QGraphicsView with a QGLWidget viewport to render it all in OpenGL automatically. Qt provides very advanced features for these kinds of things actually -- it also just so happens that I started porting the NeHe tutorials to Qt 4, so if you want to see how to start with OpenGL stuff in Qt, you could take a look at it if you want - http://wesley.vidiqatch.org/03-08-20...apter-1-and-2/
Bookmarks