1

私は Qt および C++ プログラミングの初心者です。プログラムに解決策が必要な問題があります。

MainWindow.h と ChatWindow.h の 2 つのファイルがあり、MainWindow と ChatWindow の 2 つのクラスが含まれています。

これは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