qtで2つのウィンドウ間のデータのやり取り方法は何ですか?
Qtでは、2つのウィンドウ間でデータを転送する方法はいくつかあります:
- データの送信はコンストラクタを通して行われます:セカンドウィンドウを作成する際に、送信するデータをセカンドウィンドウのコンストラクタに引数として渡します。コンストラクタはそのデータを受け取り、保存することができます。
// 第一个窗口
SecondWindow secondWindow(data);
secondWindow.show();
// 第二个窗口的构造函数
SecondWindow::SecondWindow(DataType data, QWidget *parent)
: QWidget(parent), m_data(data)
{
// 使用传递的数据
// ...
}
- メンバ関数を使用してデータを渡す:第2のウィンドウで共通のメンバ関数を定義し、その関数を呼び出してデータを渡すことができます。
// 第一个窗口
SecondWindow secondWindow;
secondWindow.setData(data);
secondWindow.show();
// 第二个窗口的成员函数
void SecondWindow::setData(DataType data)
{
m_data = data;
// 使用传递的数据
// ...
}
- シグナルとスロットを使用してデータを送受信する:最初のウィンドウで信号を送信してデータを渡し、次のウィンドウでその信号とスロット関数を接続してデータを受信することができます。
// 第一个窗口
emit dataPassed(data);
// 第二个窗口的槽函数
void SecondWindow::onDataPassed(DataType data)
{
// 使用传递的数据
// ...
}
// 连接信号与槽
connect(firstWindow, &FirstWindow::dataPassed, secondWindow, &SecondWindow::onDataPassed);
これらは一般的な3つの方法ですが、どの方法を選択するかは具体的な要求や状況によります。