1

我是 Qt 和 C++ 编程的新手。我的程序中有一些问题需要解决。

我有两个文件 MainWindow.h 和 ChatWindow.h,其中包含 MainWindow 和 ChatWindow 两个类。

这是聊天窗口.h

    namespace Ui {
class ChatWindow;
}

class ChatWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit ChatWindow(QWidget *parent=0);
    ~ChatWindow();

private slots:
    void send_chat_fn(pjsua_call_id call_id);
    void rcv_chat_fn(pjsua_call_id call_id);
    void rcv_msg_fn(QString msg);

    void on_pushButton_clicked();
    void on_actionQuit_triggered();

private:
    Ui::ChatWindow *ui;
};

这是 mainwindow.h

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void add_item(QString buddy_uri);

signals:
    void send_chat(pjsua_call_id call_id);
    void rcv_chat(pjsua_call_id call_id);
    void rcv_msg(QString msg);

private slots:
    void on_actionAdd_Buddy_triggered();
    void on_actionQuit_triggered();
    void on_actionStatus_triggered();
    void on_actionNew_Chat_triggered();
    void on_action_Configuration_triggered();


    void on_listWidget_doubleClicked(const QModelIndex &index);

private:
    Ui::MainWindow *ui;
};

现在我想将来自 mainwindow.h 的信号连接到 chatwindow.h 中的插槽。

我在 ChatWindow 类的构造函数中尝试了连接,但它不起作用(我认为这是因为连接在实例上工作而不是在类上工作)。我要连接的 MainWindow 类的实例在 mainwindow.cpp 中。在 MainWindow 中定义 ChatWindow 类的实例会出现错误:

无法设置父级,父级在不同的线程中

如果我在 ChatWindow 的构造函数中创建一个新实例,那么它不会连接到所需的实例。

它一团糟。请帮我解决这个问题。

4

0 回答 0