こんにちは私はqtを学んでいて、グラフィックシーンにいくつかのウィジェットを追加するために次のことをしています
void MainWindow::addWidgets(QList<QWidget *> &list, int code)
{
if(code == CODE_INFO)
{
QWidget *layoutWidget = new QWidget();
QVBoxLayout *layout = new QVBoxLayout();
foreach(QWidget *w, list)
{
layout->addWidget(w);
this->connect(((ProductInfo*)w), SIGNAL(productClicked()), this, SLOT(getProductDetails()));
}
layoutWidget->setLayout(layout);
this->scene->addWidget(layoutWidget);
}
}
私のProductInfoクラスはマウスのリリースを処理し、シグナルを発します
void ProductInfo::mouseReleaseEvent(QMouseEvent *e)
{
QWidget::mouseReleaseEvent(e);
emit productClicked();
}
問題は、ウィジェットをシーンに追加した後、マウスリリースイベントを取得せず、productClickedシグナルを出力しないことですが、ウィジェットをメインウィンドウ(シーンではなく)に追加すると、期待どおりに機能します。私は何が間違っているのですか?