Let's consider we have a QWidget
and a QLayout
named general_layout
that contains other widgets and layouts. general_layout
is set as the QWidget
layout like this:
setLayout(general_layout)
Now I should to change the content of QWidget
. How can I do that? I have tried to delete and create a new layout for the QWidget
and that new layout set as a layout of the QWidget
, but could not complete my intentions successfully.
This is my code:
delete general_layout;
general_layout = new QHBoxLayout;
general_layout->addLayout(some_layout);
myQWidget->setLayout(general_layout);
delete general_layout; general_layout = new QHBoxLayout; general_layout->addLayout(some_layout); myQWidget->setLayout(general_layout); qt. layout. qt4.
You can override the defaults by clicking on the parent widget of the layout, and scrolling down to the bottom of the Property Editor, where you'll see a Layout section with the relevant values ( -1 means "use the default").
First, tap-and-hold on a widget to grab it. You can see the Remove option displayed at the top of the screen. Move your finger to drag the widget onto Remove. Once you have it there, lift your finger.
You can add QPushbutton to central widget by passing its object name. QPushButton *PB=new QPushButton(ui->centralwidgetobjectname); PB. show(); Otherwise create layout inside Central widget then using addwidget function to add Qpushbutton.
The problem is that the widgets of a layout are not destroyed when deleting a layout. This results in all child widgets of myQWidget still being present, be it without a layout.
The solution is simple: add a
qDeleteAll(myQWidget->children());
after
delete general_layout;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With