我是Qt和C ++编程的新手。我的程序中有一些问题,我需要一个解决方案。
我有两个文件MainWindow.h和ChatWindow.h,它包含两个MainWindow和ChatWindow类。
这是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的Constructor中创建一个新实例,那么它就不会连接到所需的实例。
一团糟。请帮我解决这个问题。