将QGraphicsview信号连接到UI插槽

时间:2016-06-03 07:27:06

标签: c++ qt signals-slots qwidget qvboxlayout

我是QT和C ++的新手,我有遗留的qt-c ++代码,我无法开始工作。 可能它是关于调用对象的生命周期的东西,但是嘿,但请告诉我我错过了什么。

在QT .ui中我有各种框架和窗口小部件,其中包含QVBoxLayout的框架和窗口小部件,我们将调用它们#34; myLayout"

单击.ui文件我使用

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

其中myWidget在头文件

中声明为mywidget *myWidget;

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

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

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

信号永远不会占用。插槽是公共的,信号不是。

我做错了什么?有人可以帮忙。随意提出进一步的问题,因为我真的不知道在c ++问题中哪些是重要的;)

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

1 个答案:

答案 0 :(得分:2)

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