我陷入了错误,我不知道我要去哪里错了,我也尝试使用qapp运行信号,只是为了确保它不是信号,这一切都很好。我在头文件中将SLOT声明为公共插槽。
这是我的连接:
connect(this, SIGNAL(editPolygon(QVector <QPointF> &, QPolygonF &)), parent, SLOT(editPolygon(QVector <QPointF> points, CustomPolygon *poly)));
这是我发出信号的插槽:
void CustomPolygon::editPolygons()
{
QVector<QPointF> points;
QPolygonF poly = mapToScene(polygon());
emit editPolygon(points,poly);
}
这是mainwindow.cpp中的空白:
void MainWindow::editPolygon(QVector<QPointF> &points, CustomPolygon *poly)
{
}
感谢您的提前帮助!
[first我要做的是很难看清信号/插槽匹配的第二个参数的差异。
一个是QPolygon&
,另一个是CustomPolygon*
。我的理解是,这些必须匹配。即使一个是另一个的适当子类,我也不认为您可以混合使用引用和指针。