qt5---QMainWindow
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)【就是浮动窗口】、一个状态栏(status bar)及一个中心部件(central widget)
- #include "win.h"
- #include <QMenuBar>
- #include <QToolBar>
- #include <QLabel>
- #include <QStatusBar>
- #include <QDockWidget>
- #include <QTextEdit>
- Win::Win(QWidget *parent)
- : QMainWindow(parent)
- {
- this->resize(,);
- //******************菜单栏操作**************************
- QMenuBar* bar=menuBar(); //返回菜单栏指针
- this->setMenuBar(bar);//给窗口设置菜单栏--把菜单栏放入窗口
- //需要 #include <QMenuBar>
- QMenu* fileMenu=bar->addMenu("文件");//给菜单栏添加菜单
- //返回菜单的指针
- QMenu* editMenu=bar->addMenu("编辑");
- QAction* newAction=fileMenu->addAction("新建"); //给菜单添加一个菜单项目--添加一个行为
- //返回行为指针
- fileMenu->addSeparator(); //给菜单添加分割线
- QAction* openAction=fileMenu->addAction("打开");
- newAction->setIcon(QIcon("D:\\ss\\大象.png")); //给行为增加图标--文件中
- openAction->setIcon(QIcon(":/tupin/img/对勾.png"));//给行为增加图标--资源文件中
- //使用资源文件格式:":+前缀名+文件名"
- //******************工具栏操作*************************
- QToolBar* toolbar=new QToolBar(this); //创建一个工具栏
- //需要 #include <QToolBar>
- addToolBar(Qt::LeftToolBarArea,toolbar);//给窗口添加工具栏--把工具栏放到窗口
- //主窗口的工具栏上可以有多个工具条
- //工具条是一个可移动的窗口
- //参数2 要添加的工具栏
- //参数1[可选] 初始停靠区域,包括:
- //Qt::LeftToolBarArea 停靠在左侧 Qt::RightToolBarArea 停靠在右侧
- //Qt::TopToolBarArea 停靠在顶部--默认 Qt::BottomToolBarArea 停靠在底部
- //Qt::AllToolBarAreas 以上四个位置都可停靠
- toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);//只能左右停靠
- toolbar->setFloatable(false);//能否浮动
- toolbar->setMovable(false);//能否移动--能否拖拽
- toolbar->addAction(newAction); //给工具栏添加行为
- //Qt 并没有专门的菜单项类,只是使用一个QAction类,抽象出公共的动作。当我们把QAction对象添加到菜单,就显示成一个菜单项,添加到工具栏,就显示成一个工具按钮。用户可以通过点击菜单项、点击工具栏按钮、点击快捷键来激活这个动作
- toolbar->addSeparator();//给工具栏添加分割线
- toolbar->addAction(openAction);
- //******************状态栏操作*******************
- QStatusBar* statusbar=statusBar(); //创建状态栏
- //返回状态栏指针
- setStatusBar(statusbar);//给窗口添加状态栏--把状态栏放到窗口
- //状态栏也只能最多有一个
- QLabel* label=new QLabel("提示信息",this);
- statusbar->addWidget(label,);//给状态栏左侧添加控件--左侧
- //需要 #include <QStatusBar>
- //方法二 QLabel* label=new QLabel("提示信息",statusbar)---父控件是状态栏
- QLabel* label1=new QLabel("提示信息1",this);
- statusbar->addPermanentWidget(label1);//给状态栏右侧添加控件
- //*****************中心部件*******************
- QTextEdit* edit=new QTextEdit;
- setCentralWidget(edit); //给窗口添加中心控件
- //*****************浮动窗口和停靠窗口******************
- QDockWidget* dock=new QDockWidget;//创建锚接窗口--浮动窗口--停靠窗口
- //需要 #include <QDockWidget>
- addDockWidget(Qt::BottomDockWidgetArea,dock); //把浮动窗口添加到窗口中
- //参数1 起始停靠位置
- //Qt::BottomDockWidgetArea 中心部件底部
- //Qt::LeftDockWidgetArea
- //Qt::RightDockWidgetArea
- //Qt::TopDockWidgetArea
- //Qt::AllDockWidgetAreas
- //Qt::NoDockWidgetArea
- dock->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);//只能上下停靠
- }
- Win::~Win()
- {
- }
- connect(newAction,&QAction::triggered,this,[=](){qDebug()<<"点击新建行为了";});//点击行为,运行槽函数
qt5---QMainWindow的更多相关文章
- QMainWindow
QMainWindow继承自QWidget,是一个顶层窗口,它可以包含其他的界面元素:菜单栏.工具栏.状态栏.子窗口等. QMainWindow不能设置布局(setLayout()方法),因为它有自己 ...
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...
- 基于Qt5.5.0的sql,C++备忘录软件的编写
我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download ...
- QT5 动态链接库的创建和使用
记录一下QT5 动态链接库的创建和使用 在文章的最后有完成的代码供下载 1.创建动态链接库 先新建一个库项目 选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld 再点击下一步 ...
- Qt5 任务栏托盘功能实现
23333 有一阵子没写博客了,研究了挺长时间qt,学到任务栏托盘时简直无语,网上找得到的代码大多是废码,Qt5不支持或者本身就有毛病不能实现却被n多人转来转去的,甚是无语. 简单托盘功能以下在Qt5 ...
- Qt4过渡至Qt5
技术在不断进步,新知识也理应不断学习!Qt5的发布带给我无尽的好奇心,然而,受项目影响,一直使用VS2008 + Qt4.8也未曾及时更新.这几天,果断装上VS2010 + Qt5.1,开始研究.Qt ...
- Qt4升级到Qt5
QtWidgets作为一个独立的模块 例如编译时错误 error: QMainWindow: No such file or directory error: QToolButton: No such ...
- qt5.5实现 记事本程序
最近由于要做Qt相关的毕业设计课题,以前对Qt完全不了解,对于客户端图形界面程序,也只对Windows下的MFC熟悉, 所以,由于Qt的跨平台特性和相对比较纯的C++的特点,就准备学习一下吧.这两天逛 ...
- QT5.3无法自动调用incomingConnection函数的问题(4.7没有这个问题)
最近将qt4.7的一个工程移到5.3,遇到了几个麻烦事,主要是这个incomingConnection监听后无法自动调用的问题,在4.7上是完全没有问题的,到了5.3就不行,网上也查了下,网友们都是放 ...
随机推荐
- 自然语言处理NLP学习笔记二:NLP实战-开源工具tensorflow与jiagu使用
前言: NLP工具有人推荐使用spacy,有人推荐使用tensorflow. tensorflow:中文译作:张量(超过3维的叫张量)详细资料参考:http://www.tensorfly.cn/ J ...
- spring依赖注入三种方式
一.构造器注入 构造器注入是在程序中实现构造器,可以注入任意类型,如自定义类,集合,String等,注:构造器所有有final修饰的变量都必须在构造方法中注入. 二.设值注入(setter方式注入) ...
- CNN中feature map、卷积核、卷积核的个数、filter、channel的概念解释
CNN中feature map.卷积核.卷积核的个数.filter.channel的概念解释 参考链接: https://blog.csdn.net/xys430381_1/article/detai ...
- 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题)
layout: post title: 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题) author: "luowentaoaa" c ...
- phpmyadmin出现空密码登录被禁止 (参见 允许空密码)的解决办法
在Windows或者Linux下mysql安装后默认的密码为空,又当我们又安装了mysql的管理工具phpmyadmin后登陆时出现“空密码登陆呗禁止(参见允许密码为空)”.不能登录成功 ...
- 牛客 545C 出题人的数组 (贪心)
出题人有两个数组A,B,请你把两个数组归并起来使得$cost=\sum i c_i$最小. 归并要求原数组的数的顺序在新数组中不改变. 贪心水题 对于一段序列$A_i,A_{i+1},...,A_r$ ...
- TOPK 问题
TOPK 问题 描述 如从海量数字中寻找最大的 k 个,这类问题我们称为 TOPK 问题,通常使用堆来解决: 求前 k 大,用最小堆 求前 k 小,用最大堆 例子 现有列表 [1, 2, 0, 3, ...
- 自定义ResultMap查询,这里的关联写法只能用于不分页
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- selenium自动化测试工具模拟登陆爬取当当网top500畅销书单
selenium自动化测试工具可谓是爬虫的利器,基本动态加载的网页都能抓取,当然随着大型网站的更新,也出现针对selenium的反爬,有些网站可以识别你是否用的是selenium访问,然后对你加以限制 ...
- Maven之私服配置
一.配置从私服下载 从私服下载主要是将 central 库的下载地址从https://repo1.maven.org/maven2/修改为私服地址,比如http://localhost:8081/re ...