使用我的 QT5 自定义小部件调整 QGroupBox 大小
Posted
技术标签:
【中文标题】使用我的 QT5 自定义小部件调整 QGroupBox 大小【英文标题】:QGroupBox sizing with my QT5 custom widget 【发布时间】:2016-02-20 19:54:32 【问题描述】:我正在尝试制作一个自定义小部件:用于显示具有名称、值并且可以以八进制/十进制十六进制显示的处理器寄存器。代码显示在底部。当我使用如图所示的代码(即插入 QRadioButtons)时,我会收到更好的结果:
如果我使用
mainLayout->addWidget(DisplayMode);
相反(我猜这是正确的方法)那么生成的图片是
我是不是误会了什么?怎么了?
RegisterWidget::RegisterWidget(QWidget *parent)
:QFrame (parent)
mValue = 0;
mName = "";
setFrameStyle(QFrame::Panel | QFrame::Sunken);
QHBoxLayout *mainLayout = new QHBoxLayout(this);
label = new QLabel(tr("mName"),this);
label->setText(mName);
label->setLineWidth(2);
QGroupBox *DisplayMode = new QGroupBox("");
QRadioButton *OctalR = new QRadioButton(this);
QRadioButton *DecimalR = new QRadioButton(this);
DecimalR->setChecked(true); DecimalR->setDown(true);
QRadioButton *HexaR = new QRadioButton(this);
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addWidget(OctalR);
hbox->addWidget(DecimalR);
hbox->addWidget(HexaR);
hbox->addStretch(1);
DisplayMode->setLayout(hbox);
mainLayout->addWidget(label);
Value = new QLCDNumber(this);
Value->setDigitCount(8);
Value->setSegmentStyle(QLCDNumber::Flat);
Value->display(mValue);
mainLayout->addWidget(Value);
/* mainLayout->addWidget(DisplayMode);*/
mainLayout->addWidget(OctalR);
mainLayout->addWidget(DecimalR);
mainLayout->addWidget(HexaR);
setLineWidth(3);
setLayout(mainLayout);
connect(OctalR, SIGNAL(clicked()), this, SLOT(setOctal()));
connect(DecimalR, SIGNAL(clicked()), this, SLOT(setDecimal()));
connect(HexaR, SIGNAL(clicked()), this, SLOT(setHexa()));
【问题讨论】:
【参考方案1】:请致电QLayout::setContentsMargins()
获取mainLayout
和hbox
。尝试将(3, 3, 3, 3)
作为起点参数并进行调整。根据文档,布局在大多数平台上的默认边距为 11 像素。
【讨论】:
以上是关于使用我的 QT5 自定义小部件调整 QGroupBox 大小的主要内容,如果未能解决你的问题,请参考以下文章
在插入小部件时重新调整自定义 QGraphicsWIdget 的大小