对齐 QCheckbox 文本和它下面的 QLabel
Align QCheckbox text and a QLabel underneath it
我有一个带有一些文本的复选框,我在该复选框下方有一个标签。如何对齐此标签,使其与复选框上的文本对齐。
我想要的:
[ ] insert_text
some_text
我有:
[ ] insert_text
some_text
一个可能的解决方案是在 QLabel 的左侧添加一个合适宽度的填充,以计算宽度我创建了一个自定义 QCheckBox,returns 指示器的宽度但达到该数量您必须在指示器和文本之间添加几个代表 space 的像素:
#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();
}
我有一个带有一些文本的复选框,我在该复选框下方有一个标签。如何对齐此标签,使其与复选框上的文本对齐。
我想要的:
[ ] insert_text
some_text
我有:
[ ] insert_text
some_text
一个可能的解决方案是在 QLabel 的左侧添加一个合适宽度的填充,以计算宽度我创建了一个自定义 QCheckBox,returns 指示器的宽度但达到该数量您必须在指示器和文本之间添加几个代表 space 的像素:
#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();
}