将 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
我是 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