3

我对 QT c++ 有疑问

假设这是 main.cpp

#include "head.h"
#include "tail.h"

int main()
{
  head *head_obj = new head();
  tail *tail_obj = new tail();
  //some code
}

这是head.h

class head:public QWidget
{
  Q_OBJECT

  /* some code */

  public slots:
  void change_number();
};

这是tail.h

class tail:public QWidget
{
Q_OBJECT

  /* some code */
  /* some code */
  QPushButton *mytailbutton = new QPushButton("clickme");

  //this is where i need help
  connect(button,SIGNAL(clicked()),?,?);

};

现在我如何将 mytailbutton 的信号 clicked() 连接到头类插槽 change_number?我只是觉得这不可能。

感谢您的帮助!

4

2 回答 2

1

您连接实例的信号和插槽,而不是类。

您需要接收器和发射器对象的地址才能将它们连接在一起。

connect(button, SIGNAL(clicked()),
        pointer_to_instance_of_head, SLOT(change_number()));

(假设“按钮”是一个指针)。

获取该指针是另一个问题,但除非您没有充分的理由不这样做,否则我建议在QWidget您派生的构造函数中构造头对象。

于 2011-05-10T16:21:13.300 回答
0

好吧,假设一切都像你展示的那样简单,你的真正缩略的代码,它应该很简单

connect( aTailInstance->tailButon, SIGNAL( clicked() ), aHeadInstance, SLOT( change_number() ) );

但是,使用您在此处显示的代码,无法确定您所追求的功能类型,也不清楚您在问什么。

于 2011-05-10T16:25:31.287 回答