日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

6. Qt 信号与信号槽(8)实例分析

發(fā)布時(shí)間:2025/3/21 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6. Qt 信号与信号槽(8)实例分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Jerry.h 和Tom.h 是我寫(xiě)的,moc_Jerry.cpp是moc生成的。

moc生成文件的規(guī)則可參考此文:Qt 原理-MOC(2) QObject.h(點(diǎn)擊查看)

Jerry.h

class Jerry : public QObject {Q_OBJECT public:Jerry(QObject *parent = nullptr) : QObject(parent){} public slots:void runAway(){qDebug() << u8"那只貓又來(lái)了,快溜!" ;} };

Tom.h

class Tom : public QObject {Q_OBJECT public:Tom(QObject *parent = nullptr) : QObject(parent){}void miaow(){qDebug() << u8"喵!" ;emit miao();} signals:void miao(); };

moc_Jerry.cpp

struct qt_meta_stringdata_Jerry_t {QByteArrayData data[3];char stringdata0[15]; }; #define QT_MOC_LITERAL(idx, ofs, len) \Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \qptrdiff(offsetof(qt_meta_stringdata_Jerry_t, stringdata0) + ofs \- idx * sizeof(QByteArrayData)) \) static const qt_meta_stringdata_Jerry_t qt_meta_stringdata_Jerry = {//包含類名、信號(hào)函數(shù)名稱等{ QT_MOC_LITERAL(0, 0, 5), // "Jerry" QT_MOC_LITERAL(1, 6, 7), // "runAway" QT_MOC_LITERAL(2, 14, 0) // ""},"Jerry\0runAway\0" }; #undef QT_MOC_LITERALstatic const uint qt_meta_data_Jerry[] = {//格式是固定的// content:8, // revision0, // classname0, 0, // classinfo1, 14, // methods0, 0, // properties0, 0, // enums/sets0, 0, // constructors0, // flags0, // signalCount// slots: name, argc, parameters, tag, flags1, 0, 19, 2, 0x0a /* Public */,// slots: parametersQMetaType::Void,0 // eod };void Jerry::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) {if (_c == QMetaObject::InvokeMetaMethod) {auto *_t = static_cast<Jerry *>(_o);Q_UNUSED(_t)switch (_id) {case 0: _t->runAway(); break;default: ;}}Q_UNUSED(_a); }QT_INIT_METAOBJECT const QMetaObject Jerry::staticMetaObject = { {&QObject::staticMetaObject,qt_meta_stringdata_Jerry.data,qt_meta_data_Jerry,qt_static_metacall,nullptr,nullptr } };const QMetaObject *Jerry::metaObject() const {return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; }void *Jerry::qt_metacast(const char *_clname) {if (!_clname) return nullptr;if (!strcmp(_clname, qt_meta_stringdata_Jerry.stringdata0))return static_cast<void*>(this);return QObject::qt_metacast(_clname); }int Jerry::qt_metacall(QMetaObject::Call _c, int _id, void **_a) {_id = QObject::qt_metacall(_c, _id, _a);if (_id < 0)return _id;if (_c == QMetaObject::InvokeMetaMethod) {if (_id < 1)qt_static_metacall(this, _c, _id, _a);_id -= 1;} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {if (_id < 1)*reinterpret_cast<int*>(_a[0]) = -1;_id -= 1;}return _id; }QT_WARNING_POP QT_END_MOC_NAMESPACE

總結(jié)

以上是生活随笔為你收集整理的6. Qt 信号与信号槽(8)实例分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。