QT开发(二十二)——QMainWindow主窗口
谢绝转载
一、主窗口简介
QT中直接支持主窗口,QMainWindow是QT中主窗口的基类,是继承于QWidget类的容器型组件。
QMainWindow内部封装了菜单栏、工具栏、中心组件、停靠组件、状态栏等。
QMainWindow内置了布局管理器,基本的组件布局如下:
二、菜单栏
QT中提供了预定义的与菜单相关的类组件,菜单栏QMenuBar,下拉菜单QMenu,菜单项QAction。
QMenuBar* mb = menuBar();
QMenu* menu = new QMenu("File(&F)");
QAction *action = new QAction(text, NULL);
menu->addAction(action);
mb->addMenu(menu);
快捷键设置
action->setShortcut(QKeySequence(KEY));
QKeySequence是QT中与快捷键相关的类,KEY是QT中代表键值的常量。
三、工具栏
QT中提供了预定义的工具栏相关组件,工具栏QToolBar和快捷项QAction。
1、工具栏使用方法
//创建工具栏
QToolBar *tb = addToolBar("ToolBar");
//创建工具栏选项
QAction *action = new QAction("", NULL);
action->setToolTip(“Open”);
action->setIcon(QIcon(“/res/pic/open.png”));
//将工具栏选项加入工具栏
tb->addAction(action);
2、QToolBar实用函数
void setFloatable(bool floatable) 设置工具栏为浮动
void setMovable(bool movable) 设置工具栏为可移动
void setIconSize(const QSize & iconSize) 设置工具栏的图标大小
3、工具栏实例
QTollBar组件中可以加入QT中的任意QWidget组件。
QToolBar* tb = addToolBar("Tool Bar");
QAction* action = new QAction("", NULL);
tb->setFloatable(false);
tb->setMovable(false);
action->setToolTip("Open");
action->setIcon(QIcon(":/Res/open.png"));
tb->addAction(action);
QPushButton* b = new QPushButton("Button");
QLabel* l = new QLabel("Label");
QLineEdit* e = new QLineEdit();
tb->addWidget(b);
tb->addWidget(l);
tb->addWidget(e);
四、状态栏
状态栏是应用程序中输出简要信息的区域,一般位于窗口的底部。状态栏显示的消息类型如下:
A、实时消息,如当前程序状态
B、永久消息,如程序版本,开发机构
C、进度消息,进度显示
QT中提供了预定义的状态栏相关组件状态栏QStatusBar,QStatusBar是容器型组件,可以是任意组件QWidget的父组件。
QT状态栏的一般设计原则:
A、状态栏左边区域用于输出实时消息
B、状态栏右边区域用于输出永久消息
因此,addWidget函数用于在状态栏左边区域添加组件,addPermanentWidget函数用于在状态栏右边区域添加组件。
状态栏使用方法如下:
QStatusBar* sb = statusBar();
QLabel* label = new QLabel("CopyRight @ Scorpio Studio 2016");
if( label != NULL )
{
line.setMinimumWidth(120);
line.setAlignment(Qt::AlignCenter);
line.setText("Ln: 1 Col: 1");
label->setMinimumWidth(160);
label->setAlignment(Qt::AlignCenter);
sb->addPermanentWidget(new QLabel());
sb->addPermanentWidget(&line);
sb->addPermanentWidget(label);
}
五、文本编辑组件
QT中预定义了三种文本编辑组件,用于满足不同的开发需求。
A、QLineEdit单行文本编辑组件
B、QTextEdit多行富文本编辑组件
C、QPlainTextEdit多行普通文本编辑组件
QT文本编辑组件的类继承图:
QT中的文本编辑组件内置了右键弹出和快捷键功能。
文本编辑器的使用:
//设置文本编辑器的父组件
mainEditor.setParent(this);
//设置文本编辑器为中央组件
setCentralWidget(&mainEditor);
QT开发(二十二)——QMainWindow主窗口相关推荐
- QT开发(十二)——QT事件处理机制
一.QT事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发.QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. 常见的QT事件类型如下: 键盘事件: 按键按下和松开 ...
- OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十
OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...
- qt设置顶层窗口_Python快速入门系列:PyQt5 快速开发GUI-窗口类型以及主窗口创建...
QMainWindow, QWidget, QDialog三个类都是用来创建窗口的,可以直接使用或继承后再使用.QMainWindow窗口可以包含菜单栏.工具栏.状态栏.标题栏等,是最常见的窗口形式, ...
- 【Visual C++】游戏开发五十五 浅墨DirectX教程二十二 水乳交融的美学:alpha混合技术
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/15026917 作者:毛星 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试...
最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
- iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)
iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十二讲:盒子的定位方式
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十二讲:盒子的定位方式 摘要:通过前节<第十一讲:浮动>学习了贵阳网站建设中的DIV+CSS中盒子模型和浮动进行介绍.框模型是CSS的基础,本文 ...
- 数字音频总线A2B开发详解二十二:ADAU1701做的功放板的音效(26个例程)(第二部分)
六. A2B-ADAU1701音效开发:直通分频 混音讲完了,我们再来说说分频,同一个音源,如何才能同时推送到S板的2个黑色输出口来播放音乐呢? 先做S板的Sigma工程,最简单的分频输出,就是用T: ...
- Qt实现基本QMainWindow主窗口程序
这个实验用Qt实现基本QMainWindow主窗口 先上实验效果图 打开一个文件,读取文件类容 详细步骤: 1.打开Qt creator新建MainWindow工程 右键工程名添加新文件,mai ...
- Android开发笔记(一百二十二)循环器视图RecyclerView
RecyclerView RecyclerView是Android在support-v7库中新推出控件,中文别名为循环器视图,它的功能非常强大,可分别实现ListView.GridView,以及瀑布流 ...
最新文章
- 如何保证数据库服务器的安全性
- 批量正则替换某文件夹中代码(div id=XXXX替换为div id=XXXX)
- anaconda下载jupyter写python_如何安装Anaconda3和使用Jupyter
- 并发容器(J.U.C)中的集合类
- poj1019(打表预处理+数学)
- 【java虚拟机序列】java中的垃圾回收与内存分配策略
- c语言页面置换算法报告,C语言实现页面置换算法
- excel转置怎么操作_excel怎么做日历?使用Excel制作日历的操作方法
- A002-186-2619-林斌锐
- Android 圆角布局 shape.xml的使用
- java识别照片是彩色还是黑白照
- http免费代理-2020-04-07
- Python制作背单词exe
- photon 服务器操作系统,PhotonServer游戏服务器端教程
- 计算机视觉 | 八斗人工智能 (中)
- python入门——python基础语法
- 5G FWA市场一跃而上,四信多款5G终端赋能FWA典型应用
- Vue基于python的用户兴趣的电影视频播放推荐系统django
- paypal轮询系统如何降低风控提高收款率
- 个人官网导航主页API网站源码
热门文章
- java反序列化漏洞分析
- 直方图均衡化、规定化、局部直方图、直方图统计
- SSS1630规格书|SSS1630中文设计方案|USB音频解码方案
- 网络协议分析(最全)
- 总谐波失真80_总谐波失真怎么计算啊
- dp 这个单位是安卓发明的么?为什么 px=dp*(dpi/160)?
- 计算机考研专硕好考还是学硕好考,考研是学硕难考还是专硕难考?很多人都猜错了...
- 爬虫基础_urllib
- System.Data.OleDb.OleDbException错误
- windows10安装pyltp