これを行うだけです:
QStatusBar *bar = new QStatusBar;//in constructor for example
bar->showMessage(tr("Ready"));
ui->dockWidget->setWidget(bar);
この場合QStatusBar
はウィジェットになりますが、QWidget をコンテナーとして使用して、QStatusBar
常に下になるレイアウトを追加することもできます。
とQProgressBar
:
QStatusBar *bar = new QStatusBar;
QProgressBar *pr = new QProgressBar;
bar->showMessage(tr("Ready"));
pr->setValue(50);
bar->addPermanentWidget(pr);
ui->dockWidget->setWidget(bar);
結果(「Ready」もありますが、ウィンドウのサイズのために表示されません):

あなたの質問の別の部分の小さな例:
QStatusBar *bar = new QStatusBar;
QProgressBar *pr = new QProgressBar;
bar->showMessage(tr("Ready"));
pr->setValue(50);
bar->addPermanentWidget(pr);
ui->dockWidget->setWidget(bar);
connect( ui->dockWidget,&QDockWidget::topLevelChanged,[=](bool visible)
{
if(visible)
bar->hide();
else
bar->show();
});
ここC++11
( CONFIG += c++11
to .pro
file) とシグナルとスロットの新しい構文を使用しましたが、必要に応じて古い構文を使用することもできます。