#include <QApplication>
#include <QContextMenuEvent>
#include <QWidgetAction>
#include <QMenu>
#include <QPushButton>
#include <QDebug>
public:
MyWidgetAction
( QObject* parent
) :
setDefaultWidget( w );
}
};
protected:
menu->setAttribute( Qt::WA_DeleteOnClose, true );
menu->addAction( action );
MyWidgetAction* wact = new MyWidgetAction( this );
menu->addAction( wact );
connect( wact->defaultWidget(), SIGNAL( clicked() ),
menu, SLOT( hide() ) );
menu->popup( event->globalPos() );
}
};
int main( int argc, char** argv )
{
MyWidget w;
w.resize( 300, 300 );
w.show();
return app.exec();
}
#include <QApplication>
#include <QContextMenuEvent>
#include <QWidgetAction>
#include <QMenu>
#include <QPushButton>
#include <QDebug>
class MyWidgetAction : public QWidgetAction {
public:
MyWidgetAction( QObject* parent ) :
QWidgetAction( parent ) {
QPixmap pixmap( "./pick.png" );
QPushButton* w = new QPushButton( QIcon( pixmap ), "" );
setDefaultWidget( w );
}
};
class MyWidget : public QWidget {
protected:
virtual void contextMenuEvent ( QContextMenuEvent * event ) {
QMenu* menu = new QMenu;
menu->setAttribute( Qt::WA_DeleteOnClose, true );
QIcon icon( QPixmap( "./pick.png" ) );
QAction* action = new QAction( icon, "Test", this );
menu->addAction( action );
MyWidgetAction* wact = new MyWidgetAction( this );
menu->addAction( wact );
connect( wact->defaultWidget(), SIGNAL( clicked() ),
menu, SLOT( hide() ) );
menu->popup( event->globalPos() );
}
};
int main( int argc, char** argv )
{
QApplication app( argc, argv );
MyWidget w;
w.resize( 300, 300 );
w.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks