Code: Alles auswählen
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <QtGui/QToolBar>
#include <QtGui/QPixmap>
#include <QtGui/QAction>
// Klasse MainFrame
class MainFrame : public QMainWindow
{
public:
MainFrame();
private:
QToolBar *toolBar;
QAction *testAct;
void initToolBar(void);
void SetBackgroundImage ( QWidget *fp_widget, const QPixmap *fp_image);
void SetTransparency ( QWidget *fp_widget, bool f_transparent );
QBrush BrushSetAlpha ( QBrush f_brush, const int f_alpha );
};
// Konstruktor
MainFrame::MainFrame()
:toolBar(new QToolBar()),
testAct(new QAction(toolBar))
{
initToolBar();
showMaximized();
addToolBar(toolBar);
}
// Aus QT-Forum
QBrush MainFrame::BrushSetAlpha ( QBrush f_brush, const int f_alpha )
{
QColor color = f_brush.color ( );
color.setAlpha ( f_alpha );
f_brush.setColor ( color );
return f_brush;
}
// Aus QT-Forum
void MainFrame::SetTransparency( QWidget *fp_widget, bool f_transparent )
{
int alpha ( 255 );
if ( f_transparent )
alpha = 0;
QPalette newPalette = fp_widget->palette ( );
newPalette.setBrush ( QPalette::Base, BrushSetAlpha( newPalette.base ( ), alpha ) ); // sollte rausgeschmissen werden, wenn Textfelder sonst zu unleserlich sind.
newPalette.setBrush ( QPalette::Background, BrushSetAlpha( newPalette.background ( ), alpha ) );
fp_widget->setPalette ( newPalette );
}
// Aus QT-Forum
void MainFrame::SetBackgroundImage( QWidget *fp_widget, const QPixmap *fp_image)
{
QPalette newPalette = fp_widget->palette ( );
newPalette.setBrush
(
QPalette::Base,
QBrush ( *fp_image )
);
newPalette.setBrush
(
QPalette::Background,
QBrush ( *fp_image )
);
fp_widget->setPalette ( newPalette );
}
//ToolBar erstellen
void MainFrame::initToolBar(void)
{
QPixmap map("back.jpg");
testAct->setIcon(QIcon("test.png"));
SetBackgroundImage(toolBar,&map);
SetTransparency(toolBar,true);
testAct->setToolTip("TestAct");
toolBar->addAction(testAct);
}
// main Funktion
int main(int argc, char **argv)
{
QApplication app(argc, argv);
MainFrame frame;
frame.show();
return app.exec();
}