如何在 Qt 中将插槽连接到信号 QProcess::started()?

Posted

技术标签:

【中文标题】如何在 Qt 中将插槽连接到信号 QProcess::started()?【英文标题】:How to connect a slot to signal QProcess::started() in Qt? 【发布时间】:2009-08-27 02:45:45 【问题描述】:

编辑:已解决。

嗨,我从 Qt 开始,我尝试连接一个插槽来发送信号 QProcess::started(),但不能。 QObject::connect() 返回false

知道我做错了什么吗?

下面是部分代码:


class foo : public QObject
   
 public:
  QProcess *process;

 public slots:
  void process_started();


foo::foo()

 process = new QProcess();
 bool status = QObject::connect( process, SIGNAL( started() ), this, SLOT( process_started() ) );
 // status is false, meaning the slot and signal couldn't be connected

我知道该过程成功启动,因为我尝试了process->WaitForStarted(),它返回true。 但是我在插槽foo::process_started() 处设置了一个断点,它永远不会被击中。 这里有什么问题? 谢谢!

【问题讨论】:

【参考方案1】:

你忘记在你的类声明中输入Q_OBJECT。如果没有该关键字,moc 不知道它需要为您的类生成元对象信息。

【讨论】:

以上是关于如何在 Qt 中将插槽连接到信号 QProcess::started()?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定在 Linux 上使用 Qt4 终止 QProcess 的信号?

Qt:如何将不同类的静态信号连接到插槽?

Qt for Qt:如何连接到具有新信号/插槽风格的信号?

如何将信号连接到插槽

QT:使用移动语义将信号连接到插槽

QT将不同类的信号和插槽连接到主窗口类?