1

2 つの QMainWindows (A と B) が定義されており、B は A から初期化されています。つまり、B は A の子です
。B のユーザー入力に基づいて A の要素を更新する必要があるため、その方法は何ですか?明らかにウィンドウ間で要素を更新できないため、子ウィンドウから親ウィンドウの要素を更新します。

B の入力に基づいて A にラベルを設定するなどの簡単な例は素晴らしいでしょう。

前もって感謝します。

4

1 に答える 1

-1

これを行うにはシグナルとスロットを使用し、QMainWindows のいずれかをインスタンス化する前にそれらを接続します。

通常、メイン クラス内からすべてのウィンドウを初期化して、シグナルとスロットを設定できるようにします。

//-----詳細はこちら----//

新しい QWindow プロジェクトを作成すると、mainwindow.cpp クラスが取得されます。必要なことは、同じように見える childWindow.cpp クラスを作成することです。次に、メイン関数は次のようになります。

    int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    ChildWindow child;
    connect(&w, SIGNAL(labelChanged),
            &child, SLOT(updateLabelChange));
    w.show();

    return a.exec();
}

次に、シグナルとスロットを使用してそれらを制御できます。覚えておくべき重要なことは、ウィンドウごとに新しいクラスを作成する必要があるため、子ウィンドウには独自のクラスが必要であることです。それが役立つことを願っています。

于 2012-08-19T04:20:33.560 に答える