You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在QToolBar中添加标签?附Qt开发场景需求与示例代码

在QToolBar中添加标签的实现方法

当然可以在QToolBar里添加标签啦!你想要给不同系统的工具栏加上对应名称的标识,完全可以通过Qt提供的addWidget()方法来实现,就像你在MFC里见过的效果一样。

具体实现思路:

  • 用QLabel作为标签载体,设置好系统名称文本
  • 通过样式表自定义标签外观(比如加粗、设置颜色、添加内边距),让它和操作按钮区分开
  • 调用QToolBar的addWidget()把标签加入工具栏,还可以搭配addSeparator()添加分隔线,让视觉层次更清晰

修改后的完整代码示例:

QApplication a(argc, argv);
QMainWindow *w = new QMainWindow;

// 系统A对应的工具栏
QToolBar *barA = new QToolBar;
barA->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

// 添加系统A的标签
QLabel *labelA = new QLabel("系统A");
// 自定义标签样式:加粗绿色文本,左右内边距10px
labelA->setStyleSheet("font-weight: bold; color: green; padding: 0 10px;");
barA->addWidget(labelA);
// 添加分隔线区分标签和按钮
barA->addSeparator();

QAction *actOnA = new QAction("OnA");
actOnA->setIcon(QIcon("../../../on.png"));
barA->addAction(actOnA);
QAction *actOffA = new QAction("OffA");
actOffA->setIcon(QIcon("../../../off.png"));
barA->addAction(actOffA);
w->addToolBar(barA);

// 系统B对应的工具栏
QToolBar *barB = new QToolBar;
barB->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

QLabel *labelB = new QLabel("系统B");
labelB->setStyleSheet("font-weight: bold; color: green; padding: 0 10px;");
barB->addWidget(labelB);
barB->addSeparator();

QAction *actOnB = new QAction("OnB");
actOnB->setIcon(QIcon("../../../on.png"));
barB->addAction(actOnB);
QAction *actOffB = new QAction("OffB");
actOffB->setIcon(QIcon("../../../off.png"));
barB->addAction(actOffB);
w->addToolBar(barB);

w->show();
return a.exec();

额外小技巧:

如果想要标签更贴合你的界面风格,还可以修改样式表属性,比如添加背景色、调整字体大小;要是想把标签放在工具栏的特定位置(比如右侧),可以用insertWidget()指定插入位置,或者通过工具栏的布局进行微调。

内容的提问来源于stack exchange,提问作者KcFnMi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:41:50