不带UI的源文件
#-------------------------------------------------
#
# Project created by QtCreator 2021-12-11T19:55:17
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyApp
TEMPLATE = app
SOURCES += main.cpp\
UserWindow.cpp
HEADERS += UserWindow.h
#ifndef USERWINDOW_H
#define USERWINDOW_H
#include <QMainWindow>
class UserWindow : public QMainWindow
{
Q_OBJECT
public:
UserWindow(QWidget *parent = 0);
~UserWindow();
};
#endif // USERWINDOW_H
#include "UserWindow.h"
UserWindow::UserWindow(QWidget *parent): QMainWindow(parent)
{
}
UserWindow::~UserWindow()
{
}
#include "UserWindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
UserWindow w;
w.show();
return app.exec();
}
带UI的源文件
#-------------------------------------------------
#
# Project created by QtCreator 2021-12-11T21:26:58
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyApp
TEMPLATE = app
SOURCES += main.cpp\
UserWindow.cpp
HEADERS += UserWindow.h
FORMS += UserWindow.ui
工程中包含的.ui设计文件
#ifndef USERWINDOW_H
#define USERWINDOW_H
#include <QMainWindow>
namespace Ui {//做了Ui命名空间里的UserWindow类申明
class UserWindow;
}
class UserWindow : public QMainWindow
{
Q_OBJECT
public:
explicit UserWindow(QWidget *parent = 0);//多处关键字explicit,表示不允许隐式赋值
~UserWindow();
private:
Ui::UserWindow *ui;//定义一个指向Ui命名空间里的UserWindow类的指针ui
};
#endif // USERWINDOW_H
#include "UserWindow.h"
#include "ui_UserWindow.h"
UserWindow::UserWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::UserWindow)
{
//ui = new Ui::UserWindow;//动态创建一个Ui命名空间里的UserWindow类,并初始化给ui
ui->setupUi(this);//调用了该类的setupUi方法,参数是当前窗口指针
}
UserWindow::~UserWindow()
{
delete ui;
}
/********************************************************************************
** Form generated from reading UI file 'UserWindow.ui'
**
** Created by: Qt User Interface Compiler version 5.4.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_USERWINDOW_H
#define UI_USERWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_UserWindow //定义了一个Ui_UserWindow类
{
public:
QMenuBar *menuBar;
QToolBar *mainToolBar;
QWidget *centralWidget;
QStatusBar *statusBar;
void setupUi(QMainWindow *UserWindow)//实现setupUi方法,参数是 QMainWindow 的指针
{
if (UserWindow->objectName().isEmpty())
UserWindow->setObjectName(QStringLiteral("UserWindow"));
UserWindow->resize(400, 300);
menuBar = new QMenuBar(UserWindow);
menuBar->setObjectName(QStringLiteral("menuBar"));
UserWindow->setMenuBar(menuBar);
mainToolBar = new QToolBar(UserWindow);
mainToolBar->setObjectName(QStringLiteral("mainToolBar"));
UserWindow->addToolBar(mainToolBar);
centralWidget = new QWidget(UserWindow);
centralWidget->setObjectName(QStringLiteral("centralWidget"));
UserWindow->setCentralWidget(centralWidget);
statusBar = new QStatusBar(UserWindow);
statusBar->setObjectName(QStringLiteral("statusBar"));
UserWindow->setStatusBar(statusBar);
retranslateUi(UserWindow);
QMetaObject::connectSlotsByName(UserWindow);
} // setupUi
void retranslateUi(QMainWindow *UserWindow)
{
UserWindow->setWindowTitle(QApplication::translate("UserWindow", "UserWindow", 0));
} // retranslateUi
};
namespace Ui {
class UserWindow: public Ui_UserWindow //UserWindow继承Ui_UserWindow类
{
};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_USERWINDOW_H
#include "UserWindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
UserWindow w;
w.show();
return app.exec();
}