原创 八、Qt Creator实现状态栏显示(原创)

2009-11-7 12:49 3692 2 2 分类: MCU/ 嵌入式

http://hi.baidu.com/yafeilinux/blog/item/912d6acfc2524d33b700c831.html


查看原文。


在程序主窗口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文件如下。






j_0043.gif


到这里整个文本编辑器的程序就算写完了。我们这里没有写帮助菜单的功能实现,大家可以自己添加。而且程序中也有很多漏洞和不完善的地方,如果有兴趣,大家也可以自己修改。因为时间和篇幅的原因,我们这里就不再过多的讲述。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条