Qt Creator實現狀態欄顯示


 

 

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




 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM