将 QGraphicsview 信号连接到 UI 插槽

connecting QGraphicsview signal to UI slot

我是 QT 和 C++ 的新手,我这里有遗留的 qt-c++ 代码,我无法开始工作。 可能与调用对象的生命周期有关,但是嘿,但请告诉我我缺少什么。

在 QT 中。ui 我有各种包含框架和小部件的框架和包含 QVBoxLayout 的小部件,我们将称之为 "myLayout"

单击我使用的 .ui 文件

myWidget = new mywidget(some params);
myLayout->addWidget(myWidget);

其中myWidget在头文件中声明为mywidget *myWidget;

myWidget 是一个 QWidget,它在内部向自身添加了一个 QVBoxLayout,并添加了一个 QGraphicsView。使用 MouseReleaseEvent 我从 QWidget 发出信号。

现在,当我尝试连接信号槽时(这是我在 ui 的 cpp 文件中所做的)

connect(myWidget, SIGNAL(mySignal(QString)), this, SLOT(mySlot(QString)));

信号永远不会捕捉到插槽。插槽是 public,信号不是。

我做错了什么?有人可以帮忙吗。请随意提出更多问题,因为我真的不知道 C++ 问题中什么是重要的;)

编辑: 信号由 QGraphicsObjects 发出,它自己连接到 QGraphicsView 中的插槽。这个 Slot 被调用并且是可调试的。在例程结束时调用 emit mySignal("...");

也许您忘记在小部件声明中添加 Q_OBJECT 宏。 Qt 文档:http://doc.qt.io/qt-5/qobject.html#Q_OBJECT