- All (478)
- jom (0)
- Qt Linguist (7)
- Qt Eclipse Integration (9)
- Qt Designer (7)
- Qt Creator (4)
- Qt build system: qmake (31)
- Qt build system: configure (3)
- Qt Assistant (5)
- Printing (4)
- Porting from Qt 3 to Qt 4 (1)
- Plugins (7)
- Qt Visual Studio AddIn (2)
- Qt/MFC Migration (2)
- QtScript (3)
- MDI (2)
- XML (1)
- Widgets (22)
- WebKit (5)
- Tools and Containers (2)
- Threads (2)
- Text Handling (10)
- SQL (6)
- QtTest (1)
- QtService (1)
- Platform: Windows (49)
- Platform: Unix (16)
- Platform: Mac OS X (18)
- Image Formats (2)
- I/O (2)
- Graphicsview (8)
- Font handling (9)
- Event System (18)
- Drag and Drop (4)
- Dialogs (6)
- Desktop integration (3)
- ActiveQt (3)
- Itemviews (60)
- Layout (4)
- Qt Quick (10)
- Qt SDK (1)
- Licensing (2)
- Platform: Embedded Linux (38)
- Painting (32)
- OpenGL (4)
- Object Model (6)
- Network (5)
- Multimedia (3)
- Miscellanous (23)
- Main Window (19)
- Look and Feel (23)
- Development (0)
- Getting Involved (0)
- Routines (0)
How can I have a partially transparent pixmap on my toplevel window?
For top level windows we only support constant transparency and masking, so to achieve this effect, you can do one out of two things:
- Extract the transparent areas from the image as a bitmap and set this as the widget mask. This will not allow you to have partially transparent areas.
- If you want to show a QPixmap [doc.qt.nokia.com] with an alpha as your splash screen, then you
can use this approach which is slightly less efficient. You need to figure out the geometry of your splashscreen and use QPixmap::grabWindow() [doc.qt.nokia.com] to fetch this area into a QPixmap. Then take your pixmap and blend it on top of the grabbed pixmap. The resulting pixmap you can set as the widget pixmap.
- #include <QtGui>
- {
- public:
- Widget()
- {
- }
- {
- painter.drawPixmap(0, 0, desktopBackground);
- painter.drawPixmap(0,0, transparentPixmap );
- }
- {
- setWindowOpacity(0.0);
- setWindowOpacity(1.0);
- update();
- }
- private:
- QPixmap desktopBackground;
- QPixmap transparentPixmap;
- };
- int main(int argc, char **argv)
- {
- Widget box;
- box.resize(255, 255);
- box.show();
- return app.exec();
- }

No comments