记录开发
随便用学的窗口知识写了个搞怪的程序,但问题是它体积很大;
加载的 .dll 文件几百 MB,很奇怪,这只是一个简单的程序;
打包压缩的话也是有 200+ MB;
我感觉应该有小一点的库可以用;
7.QMainWindow
今日Qt代码,每个地方都注释了;
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QDebug>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600, 400);
//菜单栏创建, 有且只有一个;
QMenuBar *bar = menuBar();
//将菜单栏放入窗口中;
setMenuBar(bar);
//创建菜单;
QMenu *fileMenu = bar -> addMenu("File"); //返回类型是 QMenu;
QMenu *editMenu = bar -> addMenu("Editor");
//创建菜单项;
fileMenu -> addAction("New");
//添加分隔线;
fileMenu -> addSeparator();
fileMenu -> addAction("Open");
//工具栏, 可以有多个;
QToolBar *toolBar = new QToolBar(this); //不需要用 set 即可显示出来;
addToolBar(Qt::LeftToolBarArea, toolBar); //可以给改默认位置,查文档找使用方法;
//后期设置,只允许单边停靠;
toolBar -> setAllowedAreas(Qt::LeftToolBarArea); //多边停靠用或 ||;
//设置移动;
toolBar -> setMovable(false);
//添加操作;
toolBar -> addAction("New"); //重复的操作可以抽象成一个 QAction 对象;
toolBar -> addAction("Open");
//添加按钮控件
QPushButton *btn = new QPushButton("right", this);
toolBar -> addWidget(btn);
//状态栏,有且只有一个
QStatusBar *stBar = statusBar();
setStatusBar(stBar);
//放置标签控件
QLabel *label = new QLabel("Warning", this);
stBar -> addWidget(label);
QLabel * label2 = new QLabel("右侧提示信息",this);
stBar->addPermanentWidget(label2);
//铆接部件 (浮动窗口) 可以有多个
QDockWidget * dockWidget = new QDockWidget("Float",this);
addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
//设置后期停靠区域,只允许上下
dockWidget->setAllowedAreas( Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea );
//设置中心部件 只能一个
QTextEdit * edit = new QTextEdit(this);
setCentralWidget(edit);
}
MainWindow::~MainWindow()
{
}
有关部件放置的一个或多个:若添加时语句用的是 add,则可以有多个部件,若语句是 set,则只能有一个部件;