Este team de especialistas pasados varios días de investigación y de recopilar de información, obtuvimos la solución, queremos que te resulte útil para tu proyecto.
Solución:
void QSizePolicy::setHorizontalStretch(uchar stretchFactor)
Ejemplo:
QHBoxLayout* layout = new QHBoxLayout(form);
QWidget* left = new QWidget(form);
QSizePolicy spLeft(QSizePolicy::Preferred, QSizePolicy::Preferred);
spLeft.setHorizontalStretch(1);
left->setSizePolicy(spLeft);
layout->addWidget(left);
QWidget* right = new QWidget(form);
QSizePolicy spRight(QSizePolicy::Preferred, QSizePolicy::Preferred);
spRight.setHorizontalStretch(2);
right->setSizePolicy(spRight);
layout->addWidget(right);
La respuesta de york.beta está funcionando, pero prefiero mucho menos código.
Al menos sizePolicy es por defecto Preferido/Preferido.
La política predeterminada es Preferida/Preferida, lo que significa que el widget se puede cambiar de tamaño libremente, pero prefiere que sea del mismo tamaño que devuelve sizeHint().
Simplemente puede utilizar el segundo parámetro de agregar widget para estirar los widgets.
QHBoxLayout *layout = new QHBoxLayout( this );
layout->setContentsMargins( 0, 0, 0, 0 );
layout->setSpacing( 0 );
QPushButton *left = new QPushButton( "133px", this );
left->setStyleSheet( "QPushButtonborder: 1px solid red;" );
QPushButton *right = new QPushButton( "267px", this );
right->setStyleSheet( "QPushButtonborder: 1px solid blue;" );
layout->addWidget( left, 33 );
layout->addWidget( right, 66 );
this->setLayout( layout );
this->setFixedWidth( 400 );
Consulte http://doc.qt.io/qt-5/qboxlayout.html#addWidget
y http://doc.qt.io/qt-5/qwidget.html#sizePolicy-prop
También puede usar la propiedad layoutStretch:
https://doc.qt.io/qt-5/layout.html#stretch-factors
en tu caso seria
Agradecemos que desees sostener nuestro análisis poniendo un comentario y dejando una puntuación te lo agradecemos.