QToolBar 上的标签,可能吗?

Label on QToolBar, possible?

是否可以在 QToolBar 中添加标签?类似于我在应用程序屏幕截图上绘制的绿色文本。

我想在工具栏中有一组操作,所有这些操作都与某个系统相关。然后是另一个工具栏,其中包含与另一个系统相关的另一组操作。因此每个工具栏都会有一个根据特定系统命名的标签。

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

QToolBar *barA = new QToolBar;
barA->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

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);

QToolBar *barB = new QToolBar;
barB->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);

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();

我想我在 Microsoft MFC 项目中看到了类似的标签。

是的,您需要先创建自定义小部件,然后再执行:

ui->statusBar->addWidget(MY_CUSTOM_WIDGEt);

例如

auto b = new QPushButton(this);
b->setText("hello");
connect(b, &QPushButton::clicked, [](){qDebug()<< "ok...";});
ui->statusBar->addWidget(b);