1

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

在 QT .ui 中,我有各种框架和小部件,其中包含框架和小部件,其中包含QVBoxLayout我们称之为“myLayout”的

单击我使用的 .ui 文件

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

myWidgetmywidget *myWidget;在头文件中声明的位置

myWidget 是 aQWidget在内部添加 aQVBoxLayout到自身并添加QGraphicsView. 使用MouseReleaseEventi 从 QWidget 发出信号。

现在,当我尝试连接信号槽时(我在 ui 的 cpp 文件中执行此操作)

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

信号永远不会抓住插槽。插槽是公共的,信号不是。

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

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

4

1 回答 1

2

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

于 2016-06-03T08:31:52.937 回答