欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Q_DECLARE_METATYPE 元对象系统注册自定义类型 基本控件(三十一)

程序员文章站 2022-05-28 11:35:13
...

一、效果图
Q_DECLARE_METATYPE 元对象系统注册自定义类型 基本控件(三十一)
二、代码

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE


struct myStruct{
    QString txt;
};
Q_DECLARE_METATYPE(myStruct)

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
signals:
    void inputTxt(myStruct txt_struct);
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->lineEdit,&QLineEdit::textChanged,this,[=](const QString &txt){
        myStruct data;
        data.txt = txt;
        emit inputTxt(data);
    });
    connect(this,&Widget::inputTxt,this,[=](const myStruct &data){
        ui->lineEdit_2->setText(data.txt);
    });
}

Widget::~Widget()
{
    delete ui;
}


三、说明
Qt信号槽机制默认情况下支持基本数据类型,Q_DECLARE_METATYPE用于申明自定义数据类型

相关标签: # Qt-基本控件