Qt例程-1(Application Example)
1.简介
看的第一个Qt例程,也是写的第一个博客。如果有什么错误,谢谢指出。
这是一个widgets程序例程,包括文字编辑以及文件的打开和保存。
2.main.cpp函数
#include <QApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(application);
QApplication app(argc, argv);
QCoreApplication::setOrganizationName("QtProject");
QCoreApplication::setApplicationName("Application Example");
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
QCommandLineParser parser;
parser.setApplicationDescription(QCoreApplication::applicationName());
parser.addHelpOption();
parser.addVersionOption();
parser.addPositionalArgument("file", "The file to open.");
parser.process(app);
MainWindow mainWin;
if (!parser.positionalArguments().isEmpty())
mainWin.loadFile(parser.positionalArguments().first());
mainWin.show();
return app.exec();
}
1.两个命令行相关的头函数:QCommandLineParser和QCommandLineOption。前者是用于命令行解析,提示程序的命令参数、格式、以及解析方式等信息。后者用于设置程序运行时,命令行中可以执行的选项。
主函数中相关代码包括定义了一个QCommandLineParser对象parser,并通过parser调用了若干设置函数和解析函数。具体含义如下:
//设置命令行中的产品描述,这里的参数为前面代码所设置的产品名称。
parser.setApplicationDescription(QCoreApplication::applicationName());
//在命令行中添加帮助选项及使用说明
parser.addHelpOption();
//在命令行中添加版本选项以及使用说明
parser.addVersionOption();
//定义了产品的附加参数,这里的两个参数分别为附加参数的名字和其描述,
//规定其出现在帮助部分参数之后
parser.addPositionalArgument("file", "The file to open.");
//用于解析app中的命令行参数
parser.process(app);
//返回位置参数列表。
//在main函数中,如果命令行中有输入位置参数,则加载第一个参数对应的文件,否则不加载。
parser.positionalArguments()
2.Q_INIT_RESOURCE(application):用于加载关键字为application的.qrc资源文件。
3.三个与QSettings类相关的QCoreApplication类函数(QSettings类提供了持久的跨平台应用程序设置,创建对象时,必须指定公司或组织名称以及产品名称。)。其分别定义了组织和产品名称以及Qt版本信息,以便于其后代码创建QSettings对象。代码具体含义如下:
//设置组织名称
QCoreApplication::setOrganizationName("QtProject");
//设置产品名称
QCoreApplication::setApplicationName("Application Example");
//设置版本信息,QT_VERSION_STR是Qt库中的宏定义,内容为当前Qt版本。
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
4.main函数总结:整个main函数除了实现常见的程序框架外,还设置了程序的某些相关信息,并通过使用QCommandLineParser类对象来判断是否通过命令行中传入的文件参数来打开对应文件。