Qt is an application framework. It started out as a GUI toolkit, but has since expanded into a framework that suites many different needs. It provides nice utility classes for most needs and of course the GUI department is top notch, if that's what your application needs. Lately more work has been put into its GraphicsView framework (formerly canvas, IIRC), which makes it simpler to draw custom graphics. GraphicsView, like everything else in Qt pick from several different rendering backends, like software raster or OpenGL. The rendering backend can also be used directly, and not just through Qt's PaintDevice interface, which makes it possible to write direct OpenGL applications using Qt for setting up the context and providing utility classes for easier use. I've only started to learn OpenGL myself, and I use Qt as the base (I must note that I also know how to do these things without Qt, which I consider essential because tying yourself to one framework is never good). If you'd like to take a look, I'm documenting my learning process by making a copy of my code
here every time I make progress. I'm not very far so far though. Note that I still use SDL for timing, as I found out doing wars: commando that Qt timers are not always that accurate on all platforms (windows has around 20ms accuracy).
OpenGL on the other hand is an interface to the GPU. It's the most basic form of doing hardware accelerated graphics besides going straight past the driver to the metal (which you pretty much can't do as the driver is closed). Basically you can, for example, upload an image, upload vertices of a rectangle (or quad, as it's called in the lingo), and ask for the GPU to draw your image to that rectangle. Or you could upload a 3D model (in its most basic form, a collection of vertices, texture coordinates, normal vectors... etc) and have the GPU draw that for you from a specific point of view.
Usually a good cross-platform choice with HW acceleration is SDL+OpenGL. I just love Qt so I use it for everything