2 つの QMainWindows (A と B) が定義されており、B は A から初期化されています。つまり、B は A の子です
。B のユーザー入力に基づいて A の要素を更新する必要があるため、その方法は何ですか?明らかにウィンドウ間で要素を更新できないため、子ウィンドウから親ウィンドウの要素を更新します。
B の入力に基づいて A にラベルを設定するなどの簡単な例は素晴らしいでしょう。
前もって感謝します。
2 つの QMainWindows (A と B) が定義されており、B は A から初期化されています。つまり、B は A の子です
。B のユーザー入力に基づいて A の要素を更新する必要があるため、その方法は何ですか?明らかにウィンドウ間で要素を更新できないため、子ウィンドウから親ウィンドウの要素を更新します。
B の入力に基づいて A にラベルを設定するなどの簡単な例は素晴らしいでしょう。
前もって感謝します。
これを行うにはシグナルとスロットを使用し、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();
}
次に、シグナルとスロットを使用してそれらを制御できます。覚えておくべき重要なことは、ウィンドウごとに新しいクラスを作成する必要があるため、子ウィンドウには独自のクラスが必要であることです。それが役立つことを願っています。