signals and slots question
Angus Leeming
leeming at lyx.org
Thu Apr 28 12:31:16 BST 2005
Hi guys.
I have a newbie question that I've been unable to crack. If I have a single
QPopupMenu that is attached to four QPushButtons, how do I extract
information about which button was pressed to a slot connected to a
popupmenu item?
Below is the sample code, which I compile with:
$ moc -o trial_moc.h trial.h
$ g++ -I/usr/lib/qt-3.3/include -o trial trial.cpp \
-L/usr/lib/qt-3.3/lib -lqt-mt
I'd like to be able to ascertain which of button1 -> button4 was pressed
inside setCustom, below.
Kind regards,
Angus
$ cat trial.h
#include <qvbox.h>
class MyWidget : public QVBox
{
Q_OBJECT
public:
MyWidget( QWidget *parent=0, const char *name=0 );
public slots:
void setCustom();
};
cat trial.cpp
#include <qapplication.h>
#include <qpushbutton.h>
#include <qpopupmenu.h>
#include <iostream>
#include "trial_moc.h"
MyWidget::MyWidget( QWidget *parent, const char *name )
: QVBox( parent, name )
{
QPushButton * button1 = new QPushButton( "1", this, "1" );
QPushButton * button2 = new QPushButton( "2", this, "2" );
QPushButton * button3 = new QPushButton( "3", this, "3" );
QPushButton * button4 = new QPushButton( "4", this, "4" );
QPopupMenu * pm = new QPopupMenu(this);
pm->insertItem("&Custom...", this, SLOT(setCustom()), 0, 1);
button1->setPopup(pm);
button2->setPopup(pm);
button3->setPopup(pm);
button4->setPopup(pm);
}
void MyWidget::setCustom()
{
std::cout << "setCustom" << std::endl;
}
int main( int argc, char **argv )
{
QApplication a( argc, argv );
MyWidget w;
a.setMainWidget( &w );
w.show();
return a.exec();
}
___________________________________________________
This message is from the kde mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.
More information about the kde
mailing list