zoukankan      html  css  js  c++  java
  • Qt界面状态栏

    一、版本

    二、statusBar相关操作

    2.1界面文件状态栏(*.ui文件增加/删除状态栏)

    • ui文件删除状态栏:

    image

    • ui文件增加状态栏:

    image

    2.2状态栏相关操作

    • 隐藏/显示状态栏(界面文件已经包含状态栏)
      1 //隐藏状态栏
      2 ui.statusBar->hide();
      3 
      4 //显示状态栏
      5 ui.statusBar->show();
    • 显示或隐藏状态栏右下角图标

    image

      1 //隐藏右下角图标,fales:不显示角标;true:显示角标。默认true
      2 ui.statusBar->setSizeGripEnabled(false);
      3 
      4 //获取右下角图标显示状态,也就是方法setSizeGripEnabled的设置值
      5 bool statusBarIsShow = ui.statusBar->isSizeGripEnabled();
    • 状态栏从左侧添加插件
      1 
      2 //创建QLable对象
      3 QLable *mp_lable_statistic = new QLabel(this);
      4 
      5 //设置Lable内容
      6 mp_lable_statistic->setText(QString::fromLocal8Bit("系统中图书数量:%1 册").arg(str));
      7 
      8 //设置背景颜色
      9 mp_lable_statistic->setStyleSheet("background-color: rgb(211, 211, 211);");
     10 
     11 //添加到状态栏,从左侧依次添加
     12 ui.statusBar->addWidget(mp_lable_statistic);
    • 状态栏右侧添加插件
      1 //创建按键对象
      2 QPushButton *mp_btn_dbstatus = new QPushButton(this);
      3 
      4 //设置按钮不可点击
      5 mp_btn_dbstatus->setEnabled(false);
      6 
      7 //设置按钮高、宽
      8 mp_btn_dbstatus->setMaximumHeight(25);
      9 mp_btn_dbstatus->setMaximumWidth(25);
     10 
     11 //设置按钮形状为直径22的圆形
     12 mp_btn_dbstatus->setMask(QRegion(0, 0, 22, 22, QRegion::Ellipse));
     13 
     14 //设置按钮文字字号
     15 QFont font = mp_btn_dbstatus->font();
     16 font.setPointSize(8);
     17 mp_btn_dbstatus->setFont(font);
     18 
     19 //设置按钮背景颜色
     20 mp_btn_dbstatus->setStyleSheet("background-color: rgb(0, 255, 0);");
     21 
     22 //设置按钮文字
     23 mp_btn_dbstatus->setText(QString::fromLocal8Bit("正常"));
     24 
     25 //添加到状态栏右侧,后添加的在最右侧
     26 ui.statusBar->addPermanentWidget(mp_btn_dbstatus);
    • 状态栏临时显示信息(可以设置定时消失)
      • 显示的临时信息在状态栏左侧;
      • 状态栏没有设置超时消失时间则会一直显示;
      • 临时信息一直显示时,用addWidget方法增加插件会导致增加的插件和临时信息重叠;
      • 临时信息定时消失,消失后不会显示插入的插件信息,需要写槽函数on_pb_search_clicked()来实现消失后显示原来插件;
      • 临时信息需要先添加,然后再用addWidget方法增加插件,才可以显示临时信息,否则不显示临时信息;
      • 如果不设置临时信息消失时间,又需要操作让临时信息消失,可以调用clearMessage方法;
      • addWidget、clearMessage方法是statusBar对象的方法,on_pb_search_clicked()槽函数时statusBar所在界面对象的槽函数。
      1 //设置状态临时显示信息,信息内容“ShowMessage”,2秒后自动消失;
      2 ui.statusBar->showMessage("ShowMessage",2000);
      3 
      4 //如果没有设置2秒自动消失或者两秒内可以通过这个操作清除显示的临时信息;
      5 //ui.statusBar->clearMessage();

    on_statusBar_messageChanged槽函数样例:

      1 void MyDoc::on_statusBar_messageChanged(const QString &msg)
      2 {
      3 	if (ui.statusBar->currentMessage() == "ShowMessage")
      4 	{
      5 		return;
      6 	}
      7 	if (ui.statusBar->currentMessage() == "")
      8 	{
      9 		mp_lable_statistic->show();
     10 	}
     11 }
    • 状态栏中插件边框线统一设置
      1 //不显示其内控件的边框
      2 statusBar()->setStyleSheet(“QStatusBar::item{border: 0px}”);
    • 状态栏背景色设置
      1 ui.statusBar->setStyleSheet("#statusBar{background-color:rgb(0,0,200);}");


    • 状态栏边框线设置

    注意:边框线会被状态栏内的组件继承

      1 //上面线点线
      2 //右边线隐藏
      3 //下边线隐藏
      4 //左边线隐藏
      5 //border-style必须设置,否则不显示边框线
      6 ui.statusBar->setStyleSheet("border-color: rgb(0, 255, 0);border- 1px;border-style:  dotted hidden hidden hidden;");


    三、相关参考

  • 相关阅读:
    思念
    空白
    curl json string with variable All In One
    virtual scroll list All In One
    corejs & RegExp error All In One
    socket.io All In One
    vue camelCase vs PascalCase vs kebabcase All In One
    element ui 表单校验,非必填字段校验 All In One
    github 定时任务 UTC 时间不准确 bug All In One
    input range & color picker All In One
  • 原文地址:https://www.cnblogs.com/mehome/p/15798462.html
Copyright © 2011-2022 走看看