//.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWidget>
#include <QMetaType>
#include <QVariant>
#include <QDebug>
Q_DECLARE_METATYPE(QVector<QString>);
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
signals:
void sendData(QVariant);
private slots:
void recvData(QVariant);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
//.c
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qRegisterMetaType<QVariant>("QVariant");
connect(this,SIGNAL(sendData(QVariant)),this,SLOT(recvData(QVariant)));
QVector<QString> data;
data.push_back("hello");
data.push_back("world");
QVariant variant;
variant.setValue(data);
emit sendData(variant);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::recvData(QVariant variant)
{
QVector<QString> vector = variant.value<QVector<QString>>();
foreach (QString data, vector)
{
qDebug() << data;
}
}
测试运行,打印如下: