手动生成Qt的moc文件的方法

命令行手动生成:

1. 首先点击windows的开始按钮, 在运行窗口中输入cmd

2. 在弹出来的命令行窗口中进入Qt的安装目录, 一般是: 

   cd  C:\Qt\4.8.4\bin

3. 输入:moc "X:\XXX\...\src\glwidget.h" -o "X:\XXX\...\moc_glwidget.cpp", 回车;

4. 打开文件夹“X:\XXX\...\”生成目录, 查看moc_glwidget.cpp是否已经生成。


在vs2005中设置,这样每次编译自动生成:


1. 在solution explorer窗口中, 右击要生成moc文件的头文件, 选择"Properties";

2. 弹出的窗口左边,"Configuration Properties"下面点击"General", 将右边第二行Item Type后面内容改成"Custom Build Tool";

3. 这时候左边会新出现一栏"Custom Build Tool", 改变右边的相应选项即可. 


下面是我程序的设置, 注意蓝色内容要一致, 其实和本文上面命令行手动生成原理一致, 内容是相对应的.


Command Line                "$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o "$(Configuration)\moc_%(Filename).cpp"

Description                       Moc%27ing 头文件名字.h...

Outputs                           $(Configuration)\moc_%(Filename).cpp 

Additional Dependencies  $(QTDIR)\bin\moc.exe 

                                       %(FullPath)


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 中,moc 文件的代码结构通常包括以下几个部分: 1. 头文件包含:moc 文件需要包含类的头文件,以便生成元对象代码和辅助代码。这部分代码通常类似于以下代码: ```c++ #include "myclass.h" #include <QtCore/qobject.h> #include <QtGui/qwindow.h> #include <QtWidgets/qpushbutton.h> ``` 2. 元对象代码:这部分代码定义了类的元对象,通常包括类名、基类名、属性、方法等信息。这部分代码通常类似于以下代码: ```c++ static const QMetaObject MyClass::staticMetaObject = { // ... }; const QMetaObject *MyClass::metaObject() const { // ... } void *MyClass::qt_metacast(const char *_clname) { // ... } ``` 3. 信号和槽函数实现:这部分代码实现了类中所有的信号和槽函数,通常包括函数名、参数类型和参数个数等信息。这部分代码通常类似于以下代码: ```c++ void MyClass::mySlot() { // ... } void MyClass::mySignal(int arg1, const QString &arg2) { // ... } ``` 4. 构造函数和析构函数实现:这部分代码实现了类的构造函数和析构函数,通常包括函数名、参数类型和参数个数等信息。这部分代码通常类似于以下代码: ```c++ MyClass::MyClass(QObject *parent) : QObject(parent) { // ... } MyClass::~MyClass() { // ... } ``` 5. 其他辅助代码:这部分代码通常包括 MOC_INCLUDES 宏定义和其他辅助宏定义等。这部分代码通常类似于以下代码: ```c++ #define MOC_INCLUDES(...) // ... Q_DECLARE_METATYPE(MyClass*) ``` 需要注意的是,moc 文件的代码结构是由 moc 工具自动生成的,通常无需手动修改。如果需要手动修改 moc 文件,应该先了解 Qt 元对象系统的相关知识,以免影响程序的正确性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值