Цитата(aperon @ 13.6.2009, 20:17)
А просто заменить никак нельзя, правильно?
можно попробовать так:
Создаёшь указатель на QWidget
QWidget *wgt = 0;
В нужный момент инициализируешь его желаемым объектом.
wgt = new MyWidget(...);
А при смене удаляешь старый объект и переиницализирушь указатель новым
if (!wgt)
delete wgt;
wgt = new MyNewWidget(...);
Но тогда пользоваться таким виджетом нужно с приведением типа, например:
MyNewWidget *w = qobject_cast<MyNewWidget *>(wgt);
w->someNewMetod();// Это метод класса MyNewWidget
или
MyWidget *w = qobject_cast<MyWidget *>(wgt);
w->someMetod();// Это метод класса MyWidget
В зависимости от того, какой виджет в данный момент используется