在Qt中,可以使用信號和槽機制來實現兩個窗口之間的數據傳遞。以下是一個簡單的示例:
假設有兩個窗口,MainWindow和SubWindow,我們想要從SubWindow向MainWindow傳遞數據。
class SubWindow : public QWidget
{
Q_OBJECT
signals:
void dataTransferred(QString data);
public:
// 在需要傳遞數據的地方發射信號
void sendData()
{
QString data = "Hello, World!";
emit dataTransferred(data);
}
};
class MainWindow : public QWidget
{
Q_OBJECT
public slots:
void onDataTransferred(QString data)
{
qDebug() << "Received data: " << data;
}
public:
MainWindow()
{
SubWindow *subWindow = new SubWindow();
connect(subWindow, &SubWindow::dataTransferred, this, &MainWindow::onDataTransferred);
// 在需要的時候調用SubWindow的sendData函數
subWindow->sendData();
}
};
在這個示例中,當SubWindow的sendData函數被調用時,會發射dataTransferred信號,然后MainWindow會接收到這個信號并調用相應的槽函數onDataTransferred來處理數據。通過這種方式,就實現了兩個窗口之間的數據傳遞。