在程序主窗口Mainwindow中,有菜单栏,工具栏,中心部件和状态栏。前面几个已经讲过了,这次讲解状态栏的使用。

程序中有哪些不明白的类或函数,请自己查看帮助。

1.我们在mainwindow.h中做一下更改。

加入头文件包含: #include <QLabel>

加入私有变量和函数:

QLabel* first_statusLabel; //声明两个标签对象,用于显示状态信息

QLabel* second_statusLabel;

void init_statusBar(); //初始化状态栏

加入一个槽函数声明:void do_cursorChanged(); //获取光标位置信息

2.在mainwindow.cpp中加入状态栏初始化函数的定义。

void MainWindow::init_statusBar()

{

QStatusBar* bar = ui->statusBar; //获取状态栏

first_statusLabel = new QLabel; //新建标签

first_statusLabel->setMinimumSize(150,20); //设置标签最小尺寸

first_statusLabel->setFrameShape(QFrame::WinPanel); //设置标签形状

first_statusLabel->setFrameShadow(QFrame::Sunken); //设置标签阴影

second_statusLabel = new QLabel;

second_statusLabel->setMinimumSize(150,20);

second_statusLabel->setFrameShape(QFrame::WinPanel);

second_statusLabel->setFrameShadow(QFrame::Sunken);

bar->addWidget(first_statusLabel);

bar->addWidget(second_statusLabel);

first_statusLabel->setText(tr("欢迎使用文本编辑器")); //初始化内容

second_statusLabel->setText(tr("yafeilinux制作!"));

}

这里将两个标签对象加入到了主窗口的状态栏里,并设置了他们的外观和初值。

3.在构造函数里调用状态栏初始化函数。

init_statusBar();

这时运行程序,效果如下。

4.在mainwindow.cpp中加入获取光标位置的函数的定义。

void MainWindow::do_cursorChanged()

{

int rowNum = ui->textEdit->document()->blockCount();

//获取光标所在行的行号

const QTextCursor cursor = ui->textEdit->textCursor();

int colNum = cursor.columnNumber();

//获取光标所在列的列号

first_statusLabel->setText(tr("%1行 %2列").arg(rowNum).arg(colNum));

//在状态栏显示光标位置

}

这个函数可获取文本编辑框中光标的位置,并显示在状态栏中。

5.在构造函数添加光标位置改变信号的关联。

connect(ui->textEdit,SIGNAL(cursorPositionChanged()),this,SLOT(do_cursorChanged()));

这时运行程序。效果如下。

6.在do_file_Load函数的最后添加下面语句。

second_statusLabel->setText(tr("打开文件成功"));

7.在saveFile函数的最后添加以下语句。

second_statusLabel->setText(tr("保存文件成功"));

8.在on_action_Find_triggered函数的后面添加如下语句。

second_statusLabel->setText(tr("正在进行查找"));

9.在on_action_Close_triggered函数最后添加如下语句。

first_statusLabel->setText(tr("文本编辑器已关闭"));

second_statusLabel->setText(tr("yafeilinux制作!"));

最终的mainwindow.cpp文件内容如下。






最终的mainwindow.h文件如下。


 

 

Qt Creator实现状态栏显示的更多相关文章

  1. Qt:Qt Creator分屏显示代码

    之前用VS.PyCharm.IntelliJ IDEA时,如果想分屏看代码,直接把某个Code文件拖到IDE之外就可以了. 而Qt Creator却不能这样做,不过这不代表Qt就不能分屏了:可以点击右 ...

  2. 让Qt Creator支持Windows Phone 8开发

    让Qt Creator支持Windows Phone 8开发 近期QtCreator3.2出了.修复了一些Bug.比上一个版本号3.1.2要好了一些. 因为在上一个版本号(Qt for WinRT自带 ...

  3. 【Qt开发】状态栏设置

    1.在Qt 里面,状态栏显示的信息有三种类型:临时信息.一般信息和永久信息.  其中,临时信息指临时显示的信息,比如QAction 的提示等,也可以设置自己的  临时信息,比如程序启动之后显示Read ...

  4. qt creator源码全方面分析(2-10-4)

    目录 Plugin Life Cycle Plugin Life Cycle 为了能够编写Qt Creator插件,您必须了解启动或关闭Qt Creator时,插件管理器所采取的步骤. 本节详细描述插 ...

  5. qt creator在Qt5中中文显示的问题

    当我们用Qt Creater时,经常出会出现如下问题: 处理方法如下:用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码.在字符串前加个宏QStringLiter ...

  6. [Qt Creator 快速入门] 第5章 应用程序主窗口

    对于日常见到的应用程序而言,许多都是基于主窗口的,主窗口中包含了菜单栏.工具栏.状态栏和中心区域等.这一章会详细介绍主窗口的每一个部分,还会涉及资源管理.富文本处理.拖放操作和文档打印等相关内容.重点 ...

  7. qt creator 使用Ui文件的问题

    一.显式地调用uic.exe 如何将UI文件生成头文件 1,将设计的UI文件拷贝到uic.exe的目录下Qt\Qt5.3.2\5.3\mingw482_32\bin. 2, 打开windows的CMD ...

  8. Qt Creator 快捷键

    Qt Creator 你必须要掌握的快捷操作 http://jingyan.baidu.com/article/6fb756ecab5158241858fbb0.html 多使用快捷键能显著提高工作效 ...

  9. Qt Creator调试

    与调试器交互的几种方法: 1.单行运行或者单指令运行 2.中断程序运行 3.设置断点 4.检查调用栈空间的内容 5.检查并修改局部或者全局变量 6.检查并修改被调试程序的寄存器和内存内容 7.检查装载 ...

随机推荐

  1. FineUI页面级别的参数配置

    Theme: 控件主题,目前支持三种主题风格(blue/gray/access,默认值:blue) Language: 控件语言(en/zh_CN/zh_TW/...,默认值:zh_CN) FormM ...

  2. jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)

    一.jQuery Easy UI (适应屏幕分辨率大小)布局(Layout) 1.首先应用的是jquery-easyui-1.4 版本(版本不同,兼容性不同) 2.实现整个页面的布局( layout: ...

  3. 电厂MIS,SIS简介

    MIS(Management Information System)管理信息系统,主要指的是进行日常事务操作的系统,它使管理人员及时了解公司现状和各种消息,它是电力企业管理现代化的重要标志. 一个典型 ...

  4. php本页面调试报错配置

    ini_set('display_errors', 'On'); ini_set('memory_limit', '64M'); //报错,详细 error_reporting(E_ALL); //不 ...

  5. 自己寫的 Loading JS插件

    本文為原創文章,轉載請注明出處,謝謝./** * @author samkin.yang * @version 1.0 */var $_yxj = new SamkinLoading(); (func ...

  6. CentOS下安装nginx并且升级nginx到最新版

    yum install yum-fastestmirro yum install nginxyum update nginx(之前先配置一下)vim /etc/yum.repos.d/nginx.re ...

  7. MemCached高级缓存

    MemCached高级缓存配置 Memcache相关介绍: memcache 是一个高性能的分布式的内存对象缓存系统,它能够存储各种各样的的数据,包括图片,视频,文件等等.缓存功能. DB.数据源-- ...

  8. Web 前端开发者必知CSS 属性

    1.  圆角效果 如今的Web设计在不断跟进最新的开发技术,纷纷采用HTML5来开发多样性的Web应用.HTML5的优势之一,就是之前必须用图片实现的元素,现在可以用代码来实现. “border-ra ...

  9. Python自动化运维之10、模块之json、pickle、XML、PyYAML、configparser、shutil

    序列化 Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类 ...

  10. 开发H5小游戏

    Egret白鹭H5小游戏开发入门(一)   前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJ ...