QStatusBar already has its own horizontal layout that you can just add widgets to:
#include <QtGui>
#include <QDebug>
int main(int argc, char **argv)
{
qDebug() << win.statusBar()->layout();
// Global
win.statusBar()->setStyleSheet(
"QStatusBar::item { border: 1px solid red; border-radius: 3px; } "
);
// or get more specific
// win.statusBar()->setStyleSheet(
// "QStatusBar::item { border: none; } "
// "QStatusBar QLabel { border: 1px solid blue; border-radius: 3px; }"
// );
label1->setMinimumSize(label1->sizeHint());
label2->setAlignment(Qt::AlignCenter);
win.statusBar()->addWidget(label1);
win.statusBar()->addWidget(label2, 1);
win.show();
return app.exec();
}
#include <QtGui>
#include <QDebug>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow win;
qDebug() << win.statusBar()->layout();
// Global
win.statusBar()->setStyleSheet(
"QStatusBar::item { border: 1px solid red; border-radius: 3px; } "
);
// or get more specific
// win.statusBar()->setStyleSheet(
// "QStatusBar::item { border: none; } "
// "QStatusBar QLabel { border: 1px solid blue; border-radius: 3px; }"
// );
QLabel *label1 = new QLabel("Text");
label1->setMinimumSize(label1->sizeHint());
QLabel *label2 = new QLabel("More text");
label2->setAlignment(Qt::AlignCenter);
win.statusBar()->addWidget(label1);
win.statusBar()->addWidget(label2, 1);
win.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Your widget is given its minimum size unless you do something like set a stretch factor. Centre alignment means nothing if the box fits its content.
Bookmarks