MG_PPP(一)
项目入口,从main.cpp开始看,但是QApplication a(argc, argv);这条语句就不明白,其实对现在这个水平的我意义不大,真正开始看应该是从MainWindow wnd;
看mainwindow.cpp的源码。
命名空间Ui声明了一个类mainwindow,该类定义了一些公有或是私有的函数以及变量,列举如下:
私有部分:
变量:
Ui::MainWindow *ui;
QtPlot *mp_qtPlot;
QString m_station_path, m_App_floder;// obsvertion path
bool m_isRuned;
bool m_isRunedBatch;
int m_Display_Max_line;
PlotGUIData m_single_data;
QVector< PlotGUIData > m_mutiply_data;//store Big data in m_mutiply_data before Run
QStringList m_mutiply_names;// store multiply stations
// menu bar
QMenu *m_otherMenu;
ConfigWidget m_ConfigWidget;
key:
QtPlot *mp_qtPlot;
QString m_station_path, m_App_floder;
PlotGUIData m_single_data;
QVector< PlotGUIData > m_mutiply_data、
QStringList m_mutiply_names
函数:
void initWindow();
void WaringBox(QString info = "defualt");
void autoScrollTextEdit(QTextEdit *textEdit,QString &add_text);
void plotSigleStation(PlotGUIData &station_data);
void clearPlotGUIData(PlotGUIData &station_data);
bool isDirExist(QString fullPath);
QVector<QStringList> getConfObsType();
key:
void initWindow();
void plotSigleStation(PlotGUIData &station_data)
被保护部分:
函数:
void closeEvent(QCloseEvent *event);
void paintEvent(QPaintEvent *);
公有部分:
函数:
构造函数与析构函数,用explicit关键字被定义成显示调用,可以抑制内置类型隐式转换,比如字母可以被转换成整型。
还有一部分的公有函数使用了“槽(slots)”,该关键字的主要作用是:
槽是普通的 C++ 成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。
void selectFilePath(); // select obsfile path
void plotAllRes();// plot all figure
void RunPPP();// Run Single Station PPP
void RunSPP();// Run Single Station PPP
void RunPPPBatch();// Run Batches Station PPP
void AboutApp();
这一部分是PPP比较重要的主体。