Compare commits

...

2 Commits
main ... h

Author SHA1 Message Date
hxj 7edbbab82b 111
1 year ago
hxj 9e6455d1a5 hxj
1 year ago

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/release.iml" filepath="$PROJECT_DIR$/.idea/release.iml" />
</modules>
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="CPP_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" ENABLED="true" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="675aa9ff-7b4a-4108-9092-e72e354b4bbf" name="更改" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="ProjectApplicationVersion">
<option name="ide" value="CLion" />
<option name="majorVersion" value="2023" />
<option name="minorVersion" value="1.5" />
</component>
<component name="ProjectId" id="2qNpdCUr1AtTLPz28WXU8qNo4VT" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"WebServerToolWindowFactoryState": "false",
"cf.first.check.clang-format": "false",
"cidr.known.project.marker": "true",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="默认任务">
<changelist id="675aa9ff-7b4a-4108-9092-e72e354b4bbf" name="更改" comment="" />
<created>1734512976201</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1734512976201</updated>
<workItem from="1734512977561" duration="3000" />
</task>
<servers />
</component>
</project>

@ -6,29 +6,38 @@
** WARNING! All changes made in this file will be lost! ** WARNING! All changes made in this file will be lost!
*****************************************************************************/ *****************************************************************************/
#include "../login.h" #include "../login.h" // 包含定义了Login类的头文件
#include <QtCore/qbytearray.h> #include <QtCore/qbytearray.h> // 包含用于处理字节数组的头文件
#include <QtCore/qmetatype.h> #include <QtCore/qmetatype.h> // 包含用于类型注册和查询的头文件
// 检查是否定义了Q_MOC_OUTPUT_REVISION宏若未定义则抛出错误表示头文件没有包含<QObject>
#if !defined(Q_MOC_OUTPUT_REVISION) #if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'login.h' doesn't include <QObject>." #error "The header file 'login.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67 #elif Q_MOC_OUTPUT_REVISION != 67
// 检查版本号是否匹配如果不匹配则抛出错误表明这个moc文件不能与当前版本的Qt一起使用
#error "This file was generated using the moc from 5.8.0. It" #error "This file was generated using the moc from 5.8.0. It"
#error "cannot be used with the include files from this version of Qt." #error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)" #error "(The moc has changed too much.)"
#endif #endif
QT_BEGIN_MOC_NAMESPACE QT_BEGIN_MOC_NAMESPACE // 开始Qt的命名空间
QT_WARNING_PUSH QT_WARNING_PUSH // 推入警告设置
QT_WARNING_DISABLE_DEPRECATED QT_WARNING_DISABLE_DEPRECATED // 禁用对已弃用功能的警告
// 定义一个结构体来保存Login类中字符串数据
struct qt_meta_stringdata_Login_t { struct qt_meta_stringdata_Login_t {
QByteArrayData data[4]; QByteArrayData data[4]; // 数组用于存储四个QByteArrayData类型的字符串数据
char stringdata0[53]; char stringdata0[53]; // 字符数组,用于存储实际的字符串内容
}; };
// 宏定义用于初始化静态字节数组数据头部
#define QT_MOC_LITERAL(idx, ofs, len) \ #define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Login_t, stringdata0) + ofs \ qptrdiff(offsetof(qt_meta_stringdata_Login_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \ - idx * sizeof(QByteArrayData)) \
) )
// 静态常量qt_meta_stringdata_Login它是一个qt_meta_stringdata_Login_t类型的结构体实例
static const qt_meta_stringdata_Login_t qt_meta_stringdata_Login = { static const qt_meta_stringdata_Login_t qt_meta_stringdata_Login = {
{ {
QT_MOC_LITERAL(0, 0, 5), // "Login" QT_MOC_LITERAL(0, 0, 5), // "Login"
@ -40,80 +49,85 @@ QT_MOC_LITERAL(3, 29, 23) // "on_pushButton_2_clicked"
"Login\0on_pushButton_clicked\0\0" "Login\0on_pushButton_clicked\0\0"
"on_pushButton_2_clicked" "on_pushButton_2_clicked"
}; };
#undef QT_MOC_LITERAL #undef QT_MOC_LITERAL // 取消宏定义
// 静态常量qt_meta_data_Login它是一个整数数组包含了Login类的方法等元数据
static const uint qt_meta_data_Login[] = { static const uint qt_meta_data_Login[] = {
// content: // content:
7, // revision 7, // revision 版本号
0, // classname 0, // classname 类名偏移量
0, 0, // classinfo 0, 0, // classinfo 类信息偏移量和数量
2, 14, // methods 2, 14, // methods 方法偏移量和数量
0, 0, // properties 0, 0, // properties 属性偏移量和数量
0, 0, // enums/sets 0, 0, // enums/sets 枚举/集合偏移量和数量
0, 0, // constructors 0, 0, // constructors 构造函数偏移量和数量
0, // flags 0, // flags 标志
0, // signalCount 0, // signalCount 信号数量
// slots: name, argc, parameters, tag, flags // slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x08 /* Private */, 1, 0, 24, 2, 0x08 /* Private */, // 描述槽函数on_pushButton_clicked
3, 0, 25, 2, 0x08 /* Private */, 3, 0, 25, 2, 0x08 /* Private */, // 描述槽函数on_pushButton_2_clicked
// slots: parameters // slots: parameters 槽函数参数
QMetaType::Void, QMetaType::Void, // on_pushButton_clicked返回void
QMetaType::Void, QMetaType::Void, // on_pushButton_2_clicked返回void
0 // eod 0 // eod 结束标志
}; };
// 静态成员函数,用于调用元方法
void Login::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) void Login::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{ {
if (_c == QMetaObject::InvokeMetaMethod) { if (_c == QMetaObject::InvokeMetaMethod) { // 如果调用类型为InvokeMetaMethod
Login *_t = static_cast<Login *>(_o); Login *_t = static_cast<Login *>(_o); // 将对象指针转换为Login*
Q_UNUSED(_t) Q_UNUSED(_t) // 表示不会使用变量_t避免编译器警告
switch (_id) { switch (_id) { // 根据_id值选择要调用的槽函数
case 0: _t->on_pushButton_clicked(); break; case 0: _t->on_pushButton_clicked(); break; // 调用on_pushButton_clicked槽函数
case 1: _t->on_pushButton_2_clicked(); break; case 1: _t->on_pushButton_2_clicked(); break; // 调用on_pushButton_2_clicked槽函数
default: ; default: ;
} }
} }
Q_UNUSED(_a); Q_UNUSED(_a); // 表示不会使用参数_a避免编译器警告
} }
// 静态常量staticMetaObject它是QMetaObject类型的对象包含了Login类的所有元对象信息
const QMetaObject Login::staticMetaObject = { const QMetaObject Login::staticMetaObject = {
{ &QDialog::staticMetaObject, qt_meta_stringdata_Login.data, { &QDialog::staticMetaObject, qt_meta_stringdata_Login.data,
qt_meta_data_Login, qt_static_metacall, Q_NULLPTR, Q_NULLPTR} qt_meta_data_Login, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
}; };
// 获取当前对象的metaObject
const QMetaObject *Login::metaObject() const const QMetaObject *Login::metaObject() const
{ {
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
} }
// 运行时类型识别:将当前对象转换为指定类型
void *Login::qt_metacast(const char *_clname) void *Login::qt_metacast(const char *_clname)
{ {
if (!_clname) return Q_NULLPTR; if (!_clname) return Q_NULLPTR; // 如果_clname为空返回空指针
if (!strcmp(_clname, qt_meta_stringdata_Login.stringdata0)) if (!strcmp(_clname, qt_meta_stringdata_Login.stringdata0))
return static_cast<void*>(const_cast< Login*>(this)); return static_cast<void*>(const_cast< Login*>(this)); // 如果_clname匹配转换并返回this指针
return QDialog::qt_metacast(_clname); return QDialog::qt_metacast(_clname); // 否则调用基类的qt_metacast方法
} }
// 元对象调用
int Login::qt_metacall(QMetaObject::Call _c, int _id, void **_a) int Login::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{ {
_id = QDialog::qt_metacall(_c, _id, _a); _id = QDialog::qt_metacall(_c, _id, _a); // 调用基类的qt_metacall方法
if (_id < 0) if (_id < 0)
return _id; return _id; // 如果_id为负数直接返回
if (_c == QMetaObject::InvokeMetaMethod) { if (_c == QMetaObject::InvokeMetaMethod) { // 如果调用类型为InvokeMetaMethod
if (_id < 2) if (_id < 2)
qt_static_metacall(this, _c, _id, _a); qt_static_metacall(this, _c, _id, _a); // 调用静态元方法
_id -= 2; _id -= 2; // 减去已经处理过的方法数量
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { // 如果是注册方法参数元类型
if (_id < 2) if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1; *reinterpret_cast<int*>(_a[0]) = -1; // 设置为-1表示不支持此操作
_id -= 2; _id -= 2; // 减去已经处理过的方法数量
} }
return _id; return _id;
} }
QT_WARNING_POP QT_WARNING_POP // 弹出之前的警告设置
QT_END_MOC_NAMESPACE QT_END_MOC_NAMESPACE // 结束Qt的命名空间
Loading…
Cancel
Save