【问题标题】:Qt: QObject::connect: Cannot connect (null)Qt:QObject::connect:无法连接(空)
【发布时间】:2011-06-04 18:01:25
【问题描述】:

我正在尝试将来自mainwindow() 对象内的QProcess 的信号连接到我的mainwindow() 对象内的另一个基于QObject 的类,但出现此错误:

QObject::connect: Cannot connect (null)::readyReadStandardOutput () to (null)::logReady()

这是代码,无论如何它都不完整,但我不知道为什么它不起作用。

exeProcess.h

#ifndef EXEPROCESS_H
#define EXEPROCESS_H

#include <QObject>


class exeProcess : public QObject
{
     Q_OBJECT
public:
    explicit exeProcess(QObject *parent = 0);

signals:
    void outLog(QString outLogVar); //will eventually connect to QTextEdit

public slots:
    void logReady();

};

#endif // EXEPROCESS_H

exeProcess.cpp

#include "exeprocess.h"

exeProcess::exeProcess(QObject *parent) :
    QObject(parent)
{
}

void exeProcess::logReady(){
}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QProcess>

#include "exeprocess.h"

/*main window ---------------------------------------*/

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    QProcess *proc;
    exeProcess *procLog;


public slots:


private:
    Ui::MainWindow *ui;
};




#endif // MAINWINDOW_H

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(proc, SIGNAL(readyReadStandardOutput ()), procLog, SLOT(logReady()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

谢谢!

【问题讨论】:

  • 我不知道您使用的是什么编译器或标志,但您很幸运它们甚至为空。如果它们是一些随机内存地址,则很难弄清楚。

标签: qt qt4 qt-creator


【解决方案1】:

您需要创建procprocLog 对象。

你只有指针作为类成员,所以你必须初始化它们(使用new)。 connect 仅适用于活动对象。

【讨论】:

  • 明白了,正如您可能已经猜到的那样,我是 stackoverflow 的新手,就礼仪而言,我应该在新线程中询问每个新问题还是在同一个线程中跟进相关问题。
  • @jonathon 为每个问题在 stackoverflow 上创建一个新线程 :)
【解决方案2】:

proc 是一个指针,但它不指向任何东西。你必须在连接之前实例化一个 qprocess!

proc = new QProcess();
connect(proc, SIGNAL(readyReadStandardOutput ()), procLog, SLOT(logReady()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多