在程序主窗口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. Wcf资料收集

    1.简介 http://www.tuicool.com/articles/mqYB32 使用规范 http://blog.51cto.com/zt/219 2.教程系列 http://www.cnbl ...

  2. office2010删除多余空行

    选择 ctrl+H,弹出 "查找和替换"对话框,在"查找内容"输入"^p^p",并在"替换为"输入"^p&qu ...

  3. Objective-C学习篇09—NSNumber与笑笑语法

    NSNumber 由于数组,字典,集这三个容器中只能存放对象类型的数据,如果想把基本数据类型的数据存放到这三个容器中,需要把基本数据类型转化为对象类型,此时就要借助于NSNumber 这个类. NSN ...

  4. JavaScript 之 使用 XMLHttpRequest 上传文件

    <div id="div1"> <input type="file" id="uploadfile" style=&quo ...

  5. php中iconv函数的一个小bug--转载

    iconv转换字符集很好用,但是有时候你会发现iconv转换的时候会返回false或者空字符串,严格说来这算不上是iconv的问题,这其实是字符集的问题,但是实际编码中应该算是iconv的bug了. ...

  6. Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc

    java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M ...

  7. [转]javascript函数定义表达式和函数声明的区别

    在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ ...

  8. Java中的List(转)

    List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以Li ...

  9. CentOS 7 之安装X Window System

    网上说的直接 yum groupinstall "Desktop"经实验,在我的机器上是无效的.我使用的是: yum groupinstall 'GNOME Desktop' 才o ...

  10. python 多层装饰器

    25.多层装饰器:      1.原理:执行顺序从上往下,#2和#3组成一个函数假设为nf1,#1和nf1组成一个函数nnf1           f1成为ck_ty_of_us的inner函数即nf ...