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















