1

Windows 7 Ultimate x64 で Qt 4.8.3 (32 ビット) を使用しています。

QGraphicsSceneサブクラスのコンストラクターには、次のものがあります。

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

コンストラクターの後半で:

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

onCallIncrease()ボタンがクリックされるたびに呼び出されます。ただし、に追加inc_buttonするとpoint_tableonCallIncrease()呼び出されません。

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

マウスの左ボタンを受け入れるように手動で設定した場合でも:

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()マウスの左クリックでは呼び出されません。なぜこうなった?

4

0 に答える 0