setCentralWidget() without deleting prev widget
Hello. Sorry for my bad english..
How can I call setCetralWidget() that previous widget wasn't deleted?
it is the realization of setCentralWidget():
void QMainWindow::setCentralWidget(QWidget *widget)
- {
- Q_D(QMainWindow);
- if (d->layout->centralWidget() && d->layout->centralWidget() != widget) {
- d->layout->centralWidget()->hide();
- d->layout->centralWidget()->deleteLater();
- }
- d->layout->setCentralWidget(widget);
- }
so, setCentralWidget always call method deleteLater().
There is some ways to do it, for example:
centralWidget()->setParent(NULL);
//then we can use setCentralWidget()
1) Is there some other ways to do it?
2) Hmm.. can I redefenition deleteLater() in centralWidget()?
Re: setCentralWidget() without deleting prev widget
Can you describe what you want to do?
Why do you want to delete the central widget?
If you want your screen to look different at some point, you can try QStackedWidget
Re: setCentralWidget() without deleting prev widget
No, I don't want to delete central widget.
when I call setCentralWidget(), previous widget will be deleted automatically
Re: setCentralWidget() without deleting prev widget
I want to place several widgets to my QMainWindow.
One at the time
Re: setCentralWidget() without deleting prev widget
Ohh, ok.
Set a QStackedWidget as your central widget, then you can add multiple "central widgets"'.
http://doc.qt.nokia.com/4.6/qstackedwidget.html
Re: setCentralWidget() without deleting prev widget
I need to add one widget to centralWidget, not multiple..
Just I need that setCentralWidget() don't delete previous widget, because I will use this widget later.
QStackedWidget can do this work?
Re: setCentralWidget() without deleting prev widget
If I were you, I would already have checked the documentation of QStackedWidget
Re: setCentralWidget() without deleting prev widget
I have read this before, but I have forgotten this.
Ok. I'll check the documentation of QStackedWidget, thanks!