QGridLayout spacing and margins
-
I am using QGridLayout, the first row has a QLabel which is used to show an icon set to 32x32 pixels. The next row has two QSvgWidgets, each of these is 16x14.
My code:
QGridLayout* pgrdloStatus(new QGridLayout); if ( mplblStsIcon == nullptr ) { mplblStsIcon = new QLabel(); } if ( mpsvgRxIcon == nullptr ) { mpsvgRxIcon = new QSvgWidget(":/SVG_LED"); mpsvgRxIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); mpsvgRxIcon->setFixedSize(TraineeMonitor::mscuintCommsIconWidth, TraineeMonitor::mscuintCommsIconHeight); } if ( mpsvgTxIcon == nullptr ) { mpsvgTxIcon = new QSvgWidget(":/SVG_LED"); mpsvgTxIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); mpsvgTxIcon->setFixedSize(TraineeMonitor::mscuintCommsIconWidth, TraineeMonitor::mscuintCommsIconHeight); } const QString cstrToolTip(QString( " %1: %2\r\n%3: %4") .arg(tr("Hostname:")).arg(mstrHostname) .arg(tr("MAC address:")).arg(mstrMACaddress)); mplblStsIcon->setToolTip(cstrToolTip); pgrdloStatus->addWidget(mplblStsIcon, 0, 0, 1, 2, Qt::AlignHCenter); pgrdloStatus->addWidget(mpsvgRxIcon, 1, 0, 1, 1, Qt::AlignLeft); pgrdloStatus->addWidget(mpsvgTxIcon, 1, 1, 1, 1, Qt::AlignRight); pgrdloStatus->setMargin(0); pgrdloStatus->setSpacing(0); return pgrdloStatus;
The result:
What I actually want is:
-
I am using QGridLayout, the first row has a QLabel which is used to show an icon set to 32x32 pixels. The next row has two QSvgWidgets, each of these is 16x14.
My code:
QGridLayout* pgrdloStatus(new QGridLayout); if ( mplblStsIcon == nullptr ) { mplblStsIcon = new QLabel(); } if ( mpsvgRxIcon == nullptr ) { mpsvgRxIcon = new QSvgWidget(":/SVG_LED"); mpsvgRxIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); mpsvgRxIcon->setFixedSize(TraineeMonitor::mscuintCommsIconWidth, TraineeMonitor::mscuintCommsIconHeight); } if ( mpsvgTxIcon == nullptr ) { mpsvgTxIcon = new QSvgWidget(":/SVG_LED"); mpsvgTxIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); mpsvgTxIcon->setFixedSize(TraineeMonitor::mscuintCommsIconWidth, TraineeMonitor::mscuintCommsIconHeight); } const QString cstrToolTip(QString( " %1: %2\r\n%3: %4") .arg(tr("Hostname:")).arg(mstrHostname) .arg(tr("MAC address:")).arg(mstrMACaddress)); mplblStsIcon->setToolTip(cstrToolTip); pgrdloStatus->addWidget(mplblStsIcon, 0, 0, 1, 2, Qt::AlignHCenter); pgrdloStatus->addWidget(mpsvgRxIcon, 1, 0, 1, 1, Qt::AlignLeft); pgrdloStatus->addWidget(mpsvgTxIcon, 1, 1, 1, 1, Qt::AlignRight); pgrdloStatus->setMargin(0); pgrdloStatus->setSpacing(0); return pgrdloStatus;
The result:
What I actually want is: