使用connect方法连接到广告位

时间:2016-05-20 05:35:18

标签: c++ qt

我正在构建一个需要Qdialog和几个按钮的应用程序。

我试图在我的实现中使用Command行为设计模式。到目前为止,我的项目有4个班级。 (请原谅粗糙的UML)

Command
+execute()

zoomInAndOut : Command
+execute()

MenuItem
-QPushButton
-command
+clicked()

Dialog

所以在对话框类中,我创建了一个menuItem(它有一个QPushButton和Command成员变量),我需要发生的是当单击menuItems按钮时,它调用menuItems“clicked”方法(反过来调用命令execute方法)。我知道必须使用“连接”功能,但经过多次尝试后,我无法正常工作。

在Dialog中,代码大致如下所示

zoomInAndOut zoomCommand;
menuItem *zoom = new menuItem(new QPushButton("Zoom", this), QRect(QPoint(300, 0), QSize(100, 50)), &zoomCommand);
connect(zoom->getButton(), SIGNAL(clicked()), SLOT(zoom->clicked()));

如前所述,connect方法完全错误,但你可以看到我试图实现的目标。我怎样才能做到这一点?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

更改代码

connect(zoom->getButton(), SIGNAL(clicked()), SLOT(zoom->clicked()));

connect(zoom->getButton(), SIGNAL(clicked()), zoom, SLOT(clicked()));

答案 1 :(得分:1)

确保您的menuItem类在开始Q_OBJECT之后的行中包含{宏。并确保clicked()方法位于类主体的slots部分。