QT送信ベクトルデータスロットQVECTORベクトル信号へとスロットを介してデータを送信します

ニーズ:
構造の必要性、データは2つの要素を必要とするため、
彼らは資源、貧しい人々スケーラビリティの無駄であるか多くの構造アレイとわからないので、ベクターに構造を配置する必要があり、
必要性は、このベクターから渡しませんマスタサブウィンドウクラスフォームクラスに送信されます。

達成見て
、サブウインドウのヘッダファイルを:
#ifndefのSPRAYER_WIDGET_H
の#define SPRAYER_WIDGET_H
の#include
する#include
する#include <fcntl.h>
の#include
QmetaTypeを含める//必要性

settings_eye_struct2構造体
{
quint8 whichgun;
quint8 whicheye;
};
クラスsprayer_Widget:QWidgetのパブリック
{
Q_OBJECTの
シグナル:
ボイドdecode_eyeset_to_screen(QVector <settings_eye_struct2>);
}
CPPをサブウィンドウ:
の#include "sprayer_widget.h"
/ 構造体は直接、シグナリングすることができません宣言 /
Q_DECLARE_METATYPE(settings_eye_struct2)
settings_eye_struct2 settings_eye_data2;
QVector <settings_eye_struct2> qv_eye_data2;
/ 行数を省略 /
空隙sprayer_Widget :: on_BTN_hot_gun_clicked()
{

qRegisterMetaType<QVector<settings_eye_struct2>>();
for(int i=1;i<=8;i++)
        {
            settings_eye_data2.whichgun=i;
            settings_eye_data2.whicheye=i+1;
            qv_eye_data2.push_back(settings_eye_data2);
        }
emit decode_eyeset_to_screen(qv_eye_data2);
}

メインウィンドウのヘッダファイル:
#ifndefのMAIN_CONTROL_WIDGET_H
の#define MAIN_CONTROL_WIDGET_H

#include「sprayer_widget.h」
クラスmain_control_Widget:公共QWidgetの
{
Q_OBJECT
公共スロット:
ボイドtest_debug(QVector <settings_eye_struct2>)。
}
//这里省略一大段
}。
#endifの// MAIN_CONTROL_WIDGET_H

主窗口CPP:
の#include「main_control_widget.h」
の#include「ui_main_control_widget.h」
Q_DECLARE_METATYPE(settings_eye_struct2)
settings_eye_struct2 settings_eye_data3。
QVector <settings_eye_struct2> qv_eye_data3。

main_control_Widget :: main_control_Widget(QWidgetの*親):
はQWidget(親)、
UI(新しいUI :: main_control_Widget)
{
接続(スプレー、SIGNAL(decode_eyeset_to_screen(QVector <settings_eye_struct2>))、この、SLOT(test_debug(QVector <settings_eye_struct2>) ));
}

空main_control_Widget :: test_debug(QVector <settings_eye_struct2> vec_tmp)
{

for(int i = 0;i<vec_tmp.size();i++)
{
    qDebug() << "whicheye=:"<<vec_tmp.at(i).whicheye;
    qDebug() << "whichgun=:"<<vec_tmp.at(i).whichgun;
}

}
テストの実行:
ここに画像を挿入説明
ここに画像を挿入説明
概要:

上記単純な実験である:シグナルとスロットを渡す方法の方法により得られたベクター。

ベクターはQVARIANTパッケージコンテナを通過しなければならないいくつかのブログは、それがこれは必須ではない判明ご紹介します。

リリース3元の記事 ウォンの賞賛0 ビュー99

おすすめ

転載: blog.csdn.net/u013841997/article/details/104915423