1

I'm using Qt 4.8.3 (32 bit) on Windows 7 Ultimate x64.

In a constructor of a QGraphicsScene subclass, I have:

QGraphicsItemGroup *point_table = new QGraphicsItemGroup;
addItem(point_table);

Later in the constructor:

QPushButton *button = new QPushButton("Call++");
QGraphicsProxyWidget *inc_button = addWidget(button);
connect(button, SIGNAL(clicked()), this, SLOT(onCallIncrease()));

onCallIncrease() gets called whenever the button is clicked. However, if I add inc_button to point_table, onCallIncrease() doesn't get called.

QPushButton *button = new QPushButton("Call++");
QGraphicsProxyWidget *inc_button = addWidget(button);
point_table->addToGroup(inc_button);
connect(button, SIGNAL(clicked()), this, SLOT(onCallIncrease())); // doesn't work

Even if I manually set to accept left mouse button:

QPushButton *button = new QPushButton("Call++");
QGraphicsProxyWidget *inc_button = addWidget(button);
inc_button->setAcceptedMouseButtons(Qt::LeftButton);
point_table->setAcceptedMouseButtons(Qt::LeftButton);
point_table->addToGroup(inc_button);
connect(button, SIGNAL(clicked()), this, SLOT(onCallIncrease())); // doesn't work

onCallIncrease() doesn't get called on left mouse click. Why is this happening?

Donotalo
  • 12,748
  • 25
  • 83
  • 121

0 Answers0