官术网_书友最值得收藏!

  • Qt編程快速入門
  • 鮑忠貴
  • 408字
  • 2021-03-19 17:41:45

2.4 狀態條

2.4.1 在狀態條顯示信息

若想在狀態條顯示信息,直接在主窗口QMainWindow需要的位置調用statusBar()->showMessage()操作即可。這個功能很有用,在沒有介紹輸出組件和QMessageBox以前,可以用該功能輸出顯示信息。下面的代碼將原來用消息對話框彈出顯示的信息,改為在狀態欄輸出信息。

void MainWindow::on_action_O_triggered()
{
    //輸入以下用戶代碼
    //QMessageBox::information(this, "消息","選擇了打開菜單項");
    statusBar()->showMessage(tr("選擇了打開菜單項"));
}

2.4.2 在狀態條添加部件

和工具條一樣,在狀態條中也可以添加窗口部件。下面的例子在狀態條增加兩個標簽部件,顯示鼠標的位置信息。通過這種方法,可以把進度條、標簽等合適的部件放在狀態條顯示。

(1)在頭文件中增加以下代碼,包含標簽部件的頭文件,定義數據響應操作。

//增加頭文件,引用QLabel
#include<QLabel>
…
Public:
…
//增加鼠標移動事件響應操作
    void mouseMoveEvent(QMouseEvent * event);
//增加兩個標簽
    QLabel *MouseX;
    QLabel *MouseY;

(2)在構造函數中,增加以下代碼,設置顯示標簽的位置。

MouseX=new QLabel(ui->statusBar);
MouseX->setFixedWidth(50);
MouseX->setIndent(3);
MouseY=new QLabel(ui->statusBar);
MouseY->setFixedWidth(50);
MouseY->setIndent(3);
ui->statusBar->addWidget(MouseX);
ui->statusBar->addWidget(MouseY);
setMouseTracking(true);

(3)實現mouseMoveEvent操作,顯示鼠標移動位置。

void MainWindow::mouseMoveEvent(QMouseEvent * event)
{
    MouseX->setNum(event->x());
    MouseY->setNum(event->y());
}

(4)編譯運行,如圖2-24所示。

圖2-24 狀態條顯示程序運行界面

主站蜘蛛池模板: 沙坪坝区| 柳州市| 枣庄市| 波密县| 溆浦县| 廊坊市| 绥宁县| 云林县| 大同县| 修武县| 岚皋县| 辉南县| 清水河县| 江阴市| 舟山市| 阳朔县| 冕宁县| 卢龙县| 烟台市| 盘锦市| 青岛市| 锡林浩特市| 龙南县| 根河市| 唐海县| 新宾| 石城县| 芒康县| 香河县| 夏邑县| 乌拉特前旗| 和硕县| 永善县| 雅江县| 武宣县| 通城县| 万安县| 泰兴市| 虹口区| 芦溪县| 辽阳市|