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