mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public slots:
void foo();
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
void QMenBar_init();
void ToolBar_init();
void DockWidget_init();//停靠窗口
QAction *_open;
QAction *_save;
QAction *_exit; }; #endif // MAINWINDOW_H

mainwindow.cpp:

#include "mainwindow.h"
#include<QMenuBar>
#include<QMenu>
#include<QDebug>
#include<QToolBar>
#include<QStatusBar>
#include<QTextEdit>//多行文本
#include<QDockWidget>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QTextEdit *qtext=new QTextEdit(this);
this->resize(600,480);
QMenBar_init();
ToolBar_init();
DockWidget_init();
//this->statusBar();//状态栏,只能一个
this->statusBar()->showMessage("就绪");
//this->statusBar()->showMessage("就绪",5);//5秒后消失
//this->statusBar()和this->menuBar()只需要调用就可以了,没必要用直至保存。
this->setCentralWidget(qtext);//设置中央窗口 } void MainWindow::DockWidget_init()
{
QTextEdit *qtext=new QTextEdit(this);
QDockWidget *qd=new QDockWidget(this);
this->addDockWidget(Qt::LeftDockWidgetArea,qd); //添加停靠窗口
qd->setWidget(qtext);//窗口里面的类型,不固定
} void MainWindow::ToolBar_init()
{
QToolBar * tb=this->addToolBar("a");//menuBar()只能添加一个,但是toolbar可以添加多个
//tb->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/4.png"),"打开");
//tb->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/2.png"),"保存");
//tb->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/3.png"),"取消",this,SLOT(close()));
//共用堆区,节省内存
tb->addAction(_open);
tb->addAction(_save);
tb->addAction(_exit);
} void MainWindow::QMenBar_init()
{
QMenuBar * qm =this->menuBar();
QMenu * wen_jian = new QMenu("文件(&F)",qm); //快捷方式"Alt+F"
QMenu*bian_ji = new QMenu("编辑(&E)",qm);
QMenu * gou_jian= new QMenu("构建(&B)",qm);
QMenu* tiao_shi = new QMenu("调试(&D)",qm);
_open= wen_jian->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/4.png"),"打开");
_save=wen_jian->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/2.png"),"保存");
_exit=wen_jian->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/3.png"),"取消",this,SLOT(close())); wen_jian->addAction("新建文件或项目(N...)",this,SLOT(foo()),QKeySequence("Ctrl+N"));
wen_jian->addSeparator(); //添加分割线
QMenu* zui_file=wen_jian->addMenu("最近访问的文件(F)");
zui_file->addAction(" ");
zui_file->addSeparator();
zui_file->addAction("清除菜单"); bian_ji->addAction(QIcon("C:/Users/admin/Desktop/QT_Project/untitled/1.png"),"Undo");
tiao_shi->addAction("default")->setCheckable(true); qm->addMenu(wen_jian);
qm->addMenu(bian_ji);
qm->addMenu(gou_jian);
qm->addMenu(tiao_shi);
}
void MainWindow::foo()
{
qDebug()<<"打开成功"<<endl;
}
MainWindow::~MainWindow()
{ }

main.cpp:

#include "mainwindow.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show(); return a.exec();
}

效果:

QMainWindow(二)的更多相关文章

  1. 第十二篇 -- QMainWindow与QAction(剪切-复制-粘贴)

    效果图: 按照上一节的方法,将剪切-复制-粘贴图标放置到工具栏后,为其指定槽函数.这些功能无需自己编写代码来实现,QPlainTextEdit提供了实现这些编辑功能的槽函数,如cut().copy() ...

  2. Qt 二维码

    1.生成二维码 利用第三方库qrencode ,将qrencode源码添加到自己的程序中,直接调用使用. 参考http://blog.csdn.net/zhangxufei/article/detai ...

  3. QT Creator 快速入门教程 读书笔记(二)

    一 窗口部件 基础窗口部件QWidget类是所有用户界面对象的基类,窗口和控件都是直接或间接继承自 QWidget,下面我们来看一个很简单的例子: 窗口部件(Widget)简称部件,是QT中建立界面的 ...

  4. GUI学习之二——PyQt控件初识

    一.控件概念 控件是一个程序界面上的各个独立的元素, 它具备用户点击.接收用户输入.展示不同内容.存放其他控件等功能. 二.控件分类 常用的控件按功能可以分为以下几种类 按钮 QPushButton— ...

  5. 使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form

    使用 PySide2 开发 Maya 插件系列二:继承 uic 转换出来的 py 文件中的类 Ui_Form 开发环境: Wing IDE 6.1 步骤1: 打开 Wing IDE,创建一个新的 pr ...

  6. Qt容器组件(二)之QWidgetStack、QMdiArea、QDockWidget

    QT中有九种容器组件,分别是组合框QGroupBox.滚动区QScrollArea.工具箱QToolBox.选项卡QTabWidget.控件栈QWidgetStack.框架QFrame.组件QWidg ...

  7. QT5每日一学(二)编写QT多窗口程序

    一.添加主窗口 1.首先打开Qt Creator,新建Qt Widgets Application,项目名称设置为windows,在类信息界面保持基类为QMainWindow.类名为MainWindo ...

  8. Qt 3D教程(二)初步显示3D的内容

    Qt3D教程(二)初步显示3D的内容 前一篇很easy,全然就没有牵涉到3D的内容,它仅仅是我们搭建3D应用的基本框架而已,而这一篇.我们将要利用它来初步地显示3D的内容了! 本次目的是将程序中间的内 ...

  9. c++小学期大作业攻略(二)整体思路+主界面

    写在前面:如果我曾经说过要在第一周之内写完大作业,那……肯定是你听错了.不过如果我在写的时候有攻略看的话应该可以轻松地在4~5天内做完,然后觉得写攻略的人是个小天使吧(疯狂暗示).出于给大家自由发挥的 ...

随机推荐

  1. 【LeetCode】750. Number Of Corner Rectangles 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...

  2. 【错误】NetBeans2007:Cannot find nbproject/build-impl.xml

    从中国考试教育网下载的NetBeans中国考试教育版2007报错 E:\桌面\java考试\JavaApplication4\build.xml:7: Cannot find nbpr ...

  3. 阿里云视觉智能开放平台的人脸1:N搜索的开源替代-Java版(文末赋开源地址)

    ​ 一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...

  4. CS5202Capstone|CS5202芯片|CS5202芯片方案

    一.CS5202功能概述CS5202结合了DisplayPort输入接口和模拟RGB DAC输出接口.嵌入式单片机基于工业标准8051核心,适用于多个细分市场和显示器应用程序,如笔记本电脑.主板.台式 ...

  5. Linux磁盘实用指令

    磁盘情况查询 df/du 查询磁盘整体占用情况 df 指令:df -h 查询目录磁盘占用情况 du 基本语法 指令:du [选项] 指定目录 常用选项 指定目录不填则默认当前目录 选项 功能 -s 指 ...

  6. 【jvm】04-我偷偷改了你编译后的class文件

    [jvm]04-我偷偷改了你编译后的class文件 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请 ...

  7. Spring企业级程序设计 • 【第7章 Spring框架整合】

    全部章节   >>>> 本章目录 7.1 模型数据解析及控制器返回值 7.1.1 SSM框架环境搭建 7.1.1 ModelAndView多种用法 7.1.2 整合MyBati ...

  8. 初识python: xml 操作

    导入模块: import xml.etree.ElementTree as ET 创建xml文件: new_xml = ET.Element("namelist") # 创建根节点 ...

  9. Python2 和 Python3 共存于 Centos7

    一.解决Python2 pip问题 centos7自带的是Python2,但是并没有安装pip,我们需要自行安装 包名为 python-pip # yum install epel-release - ...

  10. redis中文乱码问题

    1.可以直接打开dos指令框输入指令进去redis数据库,因为在安装的时候就已经勾选了配置默认的环境变量. 2.可以输入ip进去,redis-cli.exe -h 192.168.32.8 -p 63 ...