Align QCheckbox text and a QLabel underneath it
up vote
1
down vote
favorite
I have a checkbox with some text and I have a label underneath this checkbox. How can I align this label so it aligns with the text on the checkbox.
What I want:
[ ] insert_text
some_text
What I have:
[ ] insert_text
some_text
c++ qt qt5 qlabel qcheckbox
add a comment |
up vote
1
down vote
favorite
I have a checkbox with some text and I have a label underneath this checkbox. How can I align this label so it aligns with the text on the checkbox.
What I want:
[ ] insert_text
some_text
What I have:
[ ] insert_text
some_text
c++ qt qt5 qlabel qcheckbox
@eyllanesc yes I am
– green123
Nov 19 at 15:46
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have a checkbox with some text and I have a label underneath this checkbox. How can I align this label so it aligns with the text on the checkbox.
What I want:
[ ] insert_text
some_text
What I have:
[ ] insert_text
some_text
c++ qt qt5 qlabel qcheckbox
I have a checkbox with some text and I have a label underneath this checkbox. How can I align this label so it aligns with the text on the checkbox.
What I want:
[ ] insert_text
some_text
What I have:
[ ] insert_text
some_text
c++ qt qt5 qlabel qcheckbox
c++ qt qt5 qlabel qcheckbox
edited Nov 26 at 2:29
eyllanesc
70.6k93052
70.6k93052
asked Nov 19 at 15:31
green123
204
204
@eyllanesc yes I am
– green123
Nov 19 at 15:46
add a comment |
@eyllanesc yes I am
– green123
Nov 19 at 15:46
@eyllanesc yes I am
– green123
Nov 19 at 15:46
@eyllanesc yes I am
– green123
Nov 19 at 15:46
add a comment |
1 Answer
1
active
oldest
votes
up vote
4
down vote
accepted
A possible solution is to add a padding to the left side of the QLabel of a suitable width, to calculate the width I have created a custom QCheckBox that returns the width of the indicator but to that amount you must add a couple of pixels that represent the space between the indicator and the text:
#include <QtWidgets>
class CheckBox: public QCheckBox{
public:
using QCheckBox::QCheckBox;
int width_of_indicator(){
QStyleOptionButton opt;
initStyleOption(&opt);
return style()->subElementRect(QStyle::SE_CheckBoxIndicator, &opt,this).width();
}
};
int main(int argc, char *argv)
{
QApplication a(argc, argv);
QWidget w;
auto ch = new CheckBox("insert_text");
auto label = new QLabel("some_text: Stack Overflow");
label->setStyleSheet(QString("padding-left: %1px").arg(ch->width_of_indicator()+2));
auto lay = new QVBoxLayout(&w);
lay->addWidget(ch);
lay->addWidget(label);
w.show();
return a.exec();
}
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
4
down vote
accepted
A possible solution is to add a padding to the left side of the QLabel of a suitable width, to calculate the width I have created a custom QCheckBox that returns the width of the indicator but to that amount you must add a couple of pixels that represent the space between the indicator and the text:
#include <QtWidgets>
class CheckBox: public QCheckBox{
public:
using QCheckBox::QCheckBox;
int width_of_indicator(){
QStyleOptionButton opt;
initStyleOption(&opt);
return style()->subElementRect(QStyle::SE_CheckBoxIndicator, &opt,this).width();
}
};
int main(int argc, char *argv)
{
QApplication a(argc, argv);
QWidget w;
auto ch = new CheckBox("insert_text");
auto label = new QLabel("some_text: Stack Overflow");
label->setStyleSheet(QString("padding-left: %1px").arg(ch->width_of_indicator()+2));
auto lay = new QVBoxLayout(&w);
lay->addWidget(ch);
lay->addWidget(label);
w.show();
return a.exec();
}
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
add a comment |
up vote
4
down vote
accepted
A possible solution is to add a padding to the left side of the QLabel of a suitable width, to calculate the width I have created a custom QCheckBox that returns the width of the indicator but to that amount you must add a couple of pixels that represent the space between the indicator and the text:
#include <QtWidgets>
class CheckBox: public QCheckBox{
public:
using QCheckBox::QCheckBox;
int width_of_indicator(){
QStyleOptionButton opt;
initStyleOption(&opt);
return style()->subElementRect(QStyle::SE_CheckBoxIndicator, &opt,this).width();
}
};
int main(int argc, char *argv)
{
QApplication a(argc, argv);
QWidget w;
auto ch = new CheckBox("insert_text");
auto label = new QLabel("some_text: Stack Overflow");
label->setStyleSheet(QString("padding-left: %1px").arg(ch->width_of_indicator()+2));
auto lay = new QVBoxLayout(&w);
lay->addWidget(ch);
lay->addWidget(label);
w.show();
return a.exec();
}
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
add a comment |
up vote
4
down vote
accepted
up vote
4
down vote
accepted
A possible solution is to add a padding to the left side of the QLabel of a suitable width, to calculate the width I have created a custom QCheckBox that returns the width of the indicator but to that amount you must add a couple of pixels that represent the space between the indicator and the text:
#include <QtWidgets>
class CheckBox: public QCheckBox{
public:
using QCheckBox::QCheckBox;
int width_of_indicator(){
QStyleOptionButton opt;
initStyleOption(&opt);
return style()->subElementRect(QStyle::SE_CheckBoxIndicator, &opt,this).width();
}
};
int main(int argc, char *argv)
{
QApplication a(argc, argv);
QWidget w;
auto ch = new CheckBox("insert_text");
auto label = new QLabel("some_text: Stack Overflow");
label->setStyleSheet(QString("padding-left: %1px").arg(ch->width_of_indicator()+2));
auto lay = new QVBoxLayout(&w);
lay->addWidget(ch);
lay->addWidget(label);
w.show();
return a.exec();
}
A possible solution is to add a padding to the left side of the QLabel of a suitable width, to calculate the width I have created a custom QCheckBox that returns the width of the indicator but to that amount you must add a couple of pixels that represent the space between the indicator and the text:
#include <QtWidgets>
class CheckBox: public QCheckBox{
public:
using QCheckBox::QCheckBox;
int width_of_indicator(){
QStyleOptionButton opt;
initStyleOption(&opt);
return style()->subElementRect(QStyle::SE_CheckBoxIndicator, &opt,this).width();
}
};
int main(int argc, char *argv)
{
QApplication a(argc, argv);
QWidget w;
auto ch = new CheckBox("insert_text");
auto label = new QLabel("some_text: Stack Overflow");
label->setStyleSheet(QString("padding-left: %1px").arg(ch->width_of_indicator()+2));
auto lay = new QVBoxLayout(&w);
lay->addWidget(ch);
lay->addWidget(label);
w.show();
return a.exec();
}
answered Nov 19 at 16:12
eyllanesc
70.6k93052
70.6k93052
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
add a comment |
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
thank you, this was what I was looking for!
– green123
Nov 19 at 16:15
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53377892%2falign-qcheckbox-text-and-a-qlabel-underneath-it%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
@eyllanesc yes I am
– green123
Nov 19 at 15:46