Q_DECLARE_METATYPE 元对象系统注册自定义类型 基本控件(三十一)
程序员文章站
2022-05-28 11:35:13
...
一、效果图
二、代码
#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用于申明自定义数据类型
上一篇: 线程池使用