我用Eclipse和QT designer的插件自动生成一个工程。
里面有个Ui_mm.h , mm是工程名。
/********************************************************************************
** Form generated from reading ui file 'mm.ui'
**
** Created: Wed Jun 11 13:27:36 2008
** by: Qt User Interface Compiler version 4.4.0
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/
#ifndef UI_MM_H
#define UI_MM_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_mmClass
{
public:
void setupUi(QWidget *mmClass)
{
if (mmClass->objectName().isEmpty())
mmClass->setObjectName(QString::fromUtf8("mmClass"));
mmClass->resize(400, 300);
retranslateUi(mmClass);
QMetaObject::connectSlotsByName(mmClass);
} // setupUi
void retranslateUi(QWidget *mmClass)
{
mmClass->setWindowTitle(QApplication::translate("mmClass", "mm", 0, QApplication::UnicodeUTF8));
Q_UNUSED(mmClass);
} // retranslateUi
};
// 不知道这个mmClass是干什么的,为什么要这个空的子类干什么,直接用父类不行吗?
namespace Ui {
class mmClass: public Ui_mmClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MM_H
不知道这个mmClass是干什么的,为什么要这个空的子类干什么,直接用父类不行吗?
另外,slot的实现部分应该写在哪个类里? 有人用VS2005的QT4,可以直接生成on_pushButton_clicked()形式的slot,并且不用connect语句,直接利用QMetaObject::connectSlotsByName(mmClass);自动匹配slot,很方便。。而我的没有,它会一个个的加connect进去,还要自己去写slot。
谁能解释这两个问题吗? 是不是由于我用的是Opensource版的?