[Qt-interest] problem with QMenu signal/slot

Riccardo Roasio riccardo.roasio at gmail.com
Thu Jun 16 16:20:02 CEST 2011


Hi,

QMenu action signal seems not to work for me but i think i did
something wrong...

Is here the code:

#ifndef CUSTOMTABLEWIDGET_H
#define CUSTOMTABLEWIDGET_H


#include <QTableWidget>
#include <QMenu>
#include <QMouseEvent>

#include "inputitem.h"

class CustomTableWidget : public QTableWidget
{
    Q_OBJECT
public:
    CustomTableWidget();

    void mousePressEvent( QMouseEvent * event );

private:

public slots:
    void AddNewItem();


};

#endif // CUSTOMTABLEWIDGET_H




#include "customtablewidget.h"

CustomTableWidget::CustomTableWidget()
{
}

void CustomTableWidget::mousePressEvent( QMouseEvent * event )
{
    if(event->button()==Qt::RightButton)
    {
        QMenu *tmpMenu=new QMenu(this);

        QAction* newItemAction = new QAction(tr("&Add New"),this);

        connect(newItemAction, SIGNAL(triggered()), this, SLOT(AddNewItem()));

        tmpMenu->addAction(newItemAction);
        tmpMenu->exec(event->globalPos());
    }


}

void CustomTableWidget::AddNewItem()
{
    InputItem *tmpInputItem=new InputItem();
    int maxRows=this->rowCount();
    this->setColumnCount(maxRows+1);
    this->setCellWidget(maxRows,0,tmpInputItem);
}



More information about the Qt-interest-old mailing list