标签:null usb widget 定义 app main obj vat ica
上节讲了项目文件组成,这节进行详细说明。#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//namespace声明一个UI空间,包含一个MainWindow类
namespace Ui {
class MainWindow;
}
//MainWindow类定义,继承QMainWindow类的定义
class MainWindow : public QMainWindow
{
//使用宏Q_OBJECT,是一个使用信号与槽必须的一个宏
Q_OBJECT
//定义MainWindow类的构造函数与析构函数
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
//定义一个指针
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Mainwindow.c
#include "mainwindow.h"
#include "ui_mainwindow.h"
//这个函数中只有构造函数与析构函数
//构造函数:执行父类QMainWindow的构造函数,
//创建一个Ui::MainWindow类的对象的ui。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
//这个函数执行窗口的生成与各种属性的设置,以及信号与槽的关联
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
//删除用new创建的指针ui
delete ui;
}
Mainwindow.ui
不需要知道这个文件是怎么生成的,只需要在UI设计界面进行可视化设计即可。
ui_mainwindow.h
//定义Ui_MainWindow,用于封装界面
class Ui_MainWindow
{
public:
//每在界面上拖入一个组件,这里机会生成一个指针变量
QWidget *centralWidget;
QLabel *label;
QMenuBar *menuBar;
QToolBar *mainToolBar;
QStatusBar *statusBar;
//用于创建各个界面的组件,并设置其位置、大小、字体等相关属性。
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QStringLiteral("MainWindow"));
MainWindow->resize(400, 300);
centralWidget = new QWidget(MainWindow);
centralWidget->setObjectName(QStringLiteral("centralWidget"));
label = new QLabel(centralWidget);
label->setObjectName(QStringLiteral("label"));
label->setGeometry(QRect(90, 70, 211, 71));
QFont font;
font.setFamily(QStringLiteral("Adobe Myungjo Std M"));
font.setPointSize(20);
label->setFont(font);
MainWindow->setCentralWidget(centralWidget);
menuBar = new QMenuBar(MainWindow);
menuBar->setObjectName(QStringLiteral("menuBar"));
menuBar->setGeometry(QRect(0, 0, 400, 23));
MainWindow->setMenuBar(menuBar);
mainToolBar = new QToolBar(MainWindow);
mainToolBar->setObjectName(QStringLiteral("mainToolBar"));
MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(MainWindow);
statusBar->setObjectName(QStringLiteral("statusBar"));
MainWindow->setStatusBar(statusBar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR));
label->setText(QApplication::translate("MainWindow", "\344\275\240\345\245\275\357\274\214\344\270\226\347\225\214\357\274\201\357\274\201", Q_NULLPTR));
} // retranslateUi
};
//定义namespace Ui ,并定义一个从Ui_MainWindow继承的类MainWindow
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
标签:null usb widget 定义 app main obj vat ica
原文地址:https://blog.51cto.com/14165014/2452590