how to setAlignment of QGroupBox
-
@p3c0 said in how to setAlignment of QGroupBox:
@cerr So now set
vboxas a layout to its parent widget.Did you mean like?
QVBoxLayout *vbox = new QVBoxLayout; vbox->addWidget(terminalWidget); vbox->addWidget(groupBox); vbox->addWidget(parent); groupBox->setLayout(vbox); terminalWidget ->show(); ``` - that doesn't let me open my application... -
@cerr Probably something like this. Assuming
QDialogis my main widget which contains groupbox.QVBoxLayout *mainLayout = new QVBoxLayout; myDialog->setLayout(mainLayout); //Now add widgets into this layout mainLayout->addWidget(groupBox);// groupbox first mainLayout->addWidget(terminalWidget);Now in your case if you want to add
terminalWidgetinside a groupbox's layout you can create new one and add into it keeping mainLayout as it is. -
@cerr Probably something like this. Assuming
QDialogis my main widget which contains groupbox.QVBoxLayout *mainLayout = new QVBoxLayout; myDialog->setLayout(mainLayout); //Now add widgets into this layout mainLayout->addWidget(groupBox);// groupbox first mainLayout->addWidget(terminalWidget);Now in your case if you want to add
terminalWidgetinside a groupbox's layout you can create new one and add into it keeping mainLayout as it is.@p3c0 said in how to setAlignment of QGroupBox:
Thanks for pitching in, I guess this is what I was missing. I now have this (which I can work with going forward):
Terminal* Session::addTerminal(QWidget* parent) { QGroupBox *groupBox = new QGroupBox(tr("Test"), parent); groupBox->setAlignment(Qt::AlignLeft); QVBoxLayout *vbox = new QVBoxLayout; groupBox->setLayout(vbox); vbox->addWidget(groupBox); Terminal* terminal = new Terminal(parent); connect(terminal, SIGNAL(activated(int)), this, SLOT(setActiveTerminal(int))); connect(terminal, SIGNAL(manuallyActivated(Terminal*)), this, SIGNAL(terminalManuallyActivated(Terminal*))); connect(terminal, SIGNAL(titleChanged(int,QString)), this, SLOT(setTitle(int,QString))); connect(terminal, SIGNAL(keyboardInputBlocked(Terminal*)), this, SIGNAL(keyboardInputBlocked(Terminal*))); connect(terminal, SIGNAL(silenceDetected(Terminal*)), this, SIGNAL(silenceDetected(Terminal*))); connect(terminal, SIGNAL(destroyed(int)), this, SLOT(cleanup(int))); m_terminals.insert(terminal->id(), terminal); QWidget* terminalWidget = terminal->terminalWidget(); vbox->addWidget(terminalWidget); terminalWidget->show(); if (groupBox) groupBox->setFocus(); return terminal; }But now back to the top, while it looks like this now: https://postimg.org/image/viahdjbwp/ how do I get the GroupBox label aligned to the left?
-
@cerr Here is a small example that demonstrates it:
int main(int argc, char *argv[]) { QApplication app(argc, argv); QDialog d; d.resize(400, 400); d.show(); QVBoxLayout mainLayout; d.setLayout(&mainLayout); QGroupBox box; box.setTitle("MyGroupBox"); mainLayout.addWidget(&box); QLabel label("MyLabel"); mainLayout.addWidget(&label); return app.exec(); }You can see the
QGroupBoxproperly aligned to the left. Here the Groupbox is added into the main widget's layout. Try to do in the similar way. -
@cerr Here is a small example that demonstrates it:
int main(int argc, char *argv[]) { QApplication app(argc, argv); QDialog d; d.resize(400, 400); d.show(); QVBoxLayout mainLayout; d.setLayout(&mainLayout); QGroupBox box; box.setTitle("MyGroupBox"); mainLayout.addWidget(&box); QLabel label("MyLabel"); mainLayout.addWidget(&label); return app.exec(); }You can see the
QGroupBoxproperly aligned to the left. Here the Groupbox is added into the main widget's layout. Try to do in the similar way.@p3c0 said in how to setAlignment of QGroupBox:
Thanks but I want the
box.setTitle("MyGroupBox"); title to be left aligned, so I altered your example code to:QGroupBox box; box.setTitle("MyGroupBox"); box.setAlignment(Qt::AlignLeft); mainLayout.addWidget(&box);but like in my application above, the title stays centered, can it be left aligned at all?
This is from http://doc.qt.io/qt-5/qgroupbox.html#alignment-prop:alignment : Qt::Alignment
This property holds the alignment of the group box title.
-
Hi,
Which window manager are you using ?
I just tested on macOS and the alignment is working properly (self built 5.7)
-
Hi,
Which window manager are you using ?
I just tested on macOS and the alignment is working properly (self built 5.7)
-
@cerr I was just trying to find out what style was you application using. I assumed you might use
qDebug()which would have properly printed the object info. Anyway try this:QApplication::style()->objectName();If it prints "fusion" (atleast on my system it does, KDE too here) then the the problem might be related to this bug which says it was fixed in
Qt 5.6.1. Can you try the newer version ? -
@cerr I was just trying to find out what style was you application using. I assumed you might use
qDebug()which would have properly printed the object info. Anyway try this:QApplication::style()->objectName();If it prints "fusion" (atleast on my system it does, KDE too here) then the the problem might be related to this bug which says it was fixed in
Qt 5.6.1. Can you try the newer version ?