Здравствуйте.
Сразу скажу что использую я линукс.
В третьем QT из ui генерировались cpp и h.
Используя Designer можно было добавлять свои слоты, связывать их с сигналами, редактировать код...
Можно сказать что это была настоящая IDE, только без компилятора.
В 4-м QT Designer преднасначен уже только для создания форм.
Теперь если из ui сгенерировать код, то получится один cpp.
При этом он не будет описывать класс формы как это было в третьем. Там что-то идет с setupUi...
Короче очень непривычно.
---------------------------------------------
Можно ли генерировать из ui два файла: declaration и implementation?
То есть если создать пустую форму и сгенерировать cpp мы получим вот что:
were@WereHome /mine/projects/temp/testUI $ uic test.ui
#ifndef TEST_H
#define TEST_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QWidget>
class Ui_MainWindow
{
public:
QWidget *centralWidget;
void setupUi(QMainWindow *MainWindow)
{
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(QSize(173, 128).expandedTo(MainWindow->minimumSizeHint()));
centralWidget = new QWidget(MainWindow);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
MainWindow->setCentralWidget(centralWidget);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
Q_UNUSED(MainWindow);
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
#endif // TEST_H
А я хочу вот это:
form.h
#ifndef form_ui
#define form_ui
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QWidget>
class MainWindow
{
Q_OBJECT
public:
//объявление виджетов
void MainWindow();
void retranslateUi();
//объявление собственных слотов
};
#endif
form.cpp
#include "form.h"
void MainWindow::MainWindow(){
this->setObjectName(QString::fromUtf8("MainWindow"));
this->resize(QSize(173, 128).expandedTo(this->minimumSizeHint()));
centralWidget = new QWidget(this);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
this->setCentralWidget(centralWidget);
retranslateUi(this);
QMetaObject::connectSlotsByName(this);
}
void MainWindow::retranslateUi({
this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
Q_UNUSED(this);
}
PS Код компилироваться скорее всего не будет, не проверял.
Вы поняли мою идею?