建立一个现代Qt窗口应用
在这一篇文章中,我们将建立一个现代窗口应用,它包括
- 菜单
- 状态栏
- 工具栏
- 可编辑的文本区域
建立
我们使用QMainWindow来建立程序
QMainWindow与QWidge的区别
- QMainWindow只能作为顶层窗口使用,QWidge既可以作为顶层窗口、也可以嵌入到别的部件里
- QMainWindow已经有了自己的布局,不能再设置布局,QWidge没有布局
- 继承自QWidget的类没有办法创建菜单栏等
![](https://i-blog.csdnimg.cn/blog_migrate/3b51db75b70db0b80502e723a7a3055d.png)
不用勾选Generate form,我们使用纯代码进行构建
既然整个程序都是从main函数开始的,那么我们也从main函数开始写
#include "mainwindow.h"
#include <QApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
int main(int argc, char *argv[])
{
QApplication a(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.process(a);
MainWindow w;
w.show();
return a.exec();
}
这段话的主要意思是,设置程序的类型、名字、版本号,并且添加一些命令行选项。现在,它可以通过命令行进行打开。
初始化
文本编辑区域
首先,我们要构建各个部件——菜单栏、工具栏、文本编辑区域、状态栏
因为我们将使用众多的部件,因此,使用#include <QtWidgets>
来包含所有的部件——这个头文件里面有所有的部件定义
#include "mainwindow.h"
#include <QtWidgets>
MainWindow::MainWindow()
{
}
将文本编辑区域放在central widget
的位置
使用setCentralWidget()
函数来设置该位置的部件
设置私有变量txtEdit来存储QPlainTextEdit这个部件——这个部件如名,是文本处理的kit
然后,在构造函数中给textEdit分配空间,并且将其设置为中心部件
QT_BEGIN_NAMESPACE
class QPlainTextEdit