QMainWindow中应用QStatusBar的简单样例

本文介绍了如何在Qt应用程序中利用QStatusBar组件展示TCP网络信息,如IP地址、端口和连接状态。通过创建QStatusBar对象,添加QLabel控件,并设置不同的信息类型,可以实现临时、普通和永久信息的显示。此外,还展示了如何修改样式以消除状态栏中的分隔线,并控制大小调整标志的显示。
摘要由CSDN通过智能技术生成

用到StatusBar是因为,需要显示一下TCP的网络信息,IP或者端口以及当前的状态之类的。

很简单,首先QMainWindow中有一个函数叫

void QMainWindow::setStatusBar(QStatusBar *statusbar)
//Sets the status bar for the main window to statusbar.
//Setting the status bar to 0 will remove it from the main window. Note that QMainWindow //takes ownership of the statusbar pointer and deletes it at the appropriate time.

因此在我们使用之前先创建一个QStatusBar的对象,然后添加就好了。

QStatusBar提供了三种类别的信息显示,临时信息、普通信息、永久信息。

临时信息

void showMessage(const QString &text, int timeout = 0);

这个函数的作用效果就是可以显示text内容,后面的timeout是持续时间。这个会占用普通信息显示的位置,因为只存在一段时间,因此叫临时的。

普通信息

普通信息,可以通过

 void addWidget(QWidget *widget, int stretch = 0);




 l_tcp_state = new QLabel("listening");

 l_tcp_parm = new QLabel("127.0.0.1:8899");


 bar->addWidget(l_tcp_parm);

 bar->addWidget(l_tcp_state);

addWdiget函数来添加相应的空间,我这里添加了Qlable控件,来标准Ip和port,显示效果如下:

永久信息

 void addPermanentWidget(QWidget *widget, int stretch = 0);

通过这个函数添加相应控件,这里的显示会显示到statusBar的右侧,并且不会被临时信息覆盖。

样式修改

void setSizeGripEnabled(bool);

这句代码可以控制右下角的小三角是否显示。

可以看到普通信息那里存在一个竖杠,我么也可以通过,修改stylesheet来消除它。

satausBar->setStyleSheet(QString("QStatusBar::item{border: 0px}"));

CPP完整代码

    l_tcp_state = new QLabel("listening");

    l_tcp_parm = new QLabel("127.0.0.1:8899");
    sarWidget = new SarWidget();

    bar = new QStatusBar();

    bar->addWidget(l_tcp_parm);

    bar->addPermanentWidget(l_tcp_state);
    bar->setSizeGripEnabled(true);
    bar->setStyleSheet(QString("QStatusBar::item{border: 0px}"));

    this->setStatusBar(bar);

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值