qtで2つのウィンドウ間のデータのやり取り方法は何ですか?

Qtでは、2つのウィンドウ間でデータを転送する方法はいくつかあります:

  1. データの送信はコンストラクタを通して行われます:セカンドウィンドウを作成する際に、送信するデータをセカンドウィンドウのコンストラクタに引数として渡します。コンストラクタはそのデータを受け取り、保存することができます。
// 第一个窗口
SecondWindow secondWindow(data);
secondWindow.show();

// 第二个窗口的构造函数
SecondWindow::SecondWindow(DataType data, QWidget *parent)
    : QWidget(parent), m_data(data)
{
    // 使用传递的数据
    // ...
}
  1. メンバ関数を使用してデータを渡す:第2のウィンドウで共通のメンバ関数を定義し、その関数を呼び出してデータを渡すことができます。
// 第一个窗口
SecondWindow secondWindow;
secondWindow.setData(data);
secondWindow.show();

// 第二个窗口的成员函数
void SecondWindow::setData(DataType data)
{
    m_data = data;
    // 使用传递的数据
    // ...
}
  1. シグナルとスロットを使用してデータを送受信する:最初のウィンドウで信号を送信してデータを渡し、次のウィンドウでその信号とスロット関数を接続してデータを受信することができます。
// 第一个窗口
emit dataPassed(data);

// 第二个窗口的槽函数
void SecondWindow::onDataPassed(DataType data)
{
    // 使用传递的数据
    // ...
}

// 连接信号与槽
connect(firstWindow, &FirstWindow::dataPassed, secondWindow, &SecondWindow::onDataPassed);

これらは一般的な3つの方法ですが、どの方法を選択するかは具体的な要求や状況によります。

bannerAds