八、Qt Creator實現狀態列顯示

洛欣發表於2010-05-18

宣告:本文原創於yafeilinux的百度部落格,http://hi.baidu.com/yafeilinux 轉載請註明出處。

在程式主視窗Mainwindow中,有選單欄,工具欄,中心部件和狀態列。前面幾個已經講過了,這次講解狀態列的使用。

程式中有哪些不明白的類或函式,請自己檢視幫助。

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

加入標頭檔案包含: #include

加入私有變數和函式:

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();

這時執行程式,效果如下。

八、Qt Creator實現狀態列顯示

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()));

這時執行程式。效果如下。

八、Qt Creator實現狀態列顯示

6.在do_file_Load函式的最後新增下面語句。

second_statusLabel->setText(tr("開啟檔案成功"));

八、Qt Creator實現狀態列顯示

7.在saveFile函式的最後新增以下語句。

second_statusLabel->setText(tr("儲存檔案成功"));

八、Qt Creator實現狀態列顯示

8.在on_action_Find_triggered函式的後面新增如下語句。

second_statusLabel->setText(tr("正在進行查詢"));

八、Qt Creator實現狀態列顯示

9.在on_action_Close_triggered函式最後新增如下語句。

first_statusLabel->setText(tr("文字編輯器已關閉"));

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

八、Qt Creator實現狀態列顯示

最終的mainwindow.cpp檔案內容如下。

八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示

最終的mainwindow.h檔案如下。

八、Qt Creator實現狀態列顯示
八、Qt Creator實現狀態列顯示

八、Qt Creator實現狀態列顯示

到這裡整個文字編輯器的程式就算寫完了。我們這裡沒有寫幫助選單的功能實現,大家可以自己新增。而且程式中也有很多漏洞和不完善的地方,如果有興趣,大家也可以自己修改。因為時間和篇幅的原因,我們這裡就不再過多的講述。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22785983/viewspace-662982/,如需轉載,請註明出處,否則將追究法律責任。

相關文章