Thanks for testing this toutarrive.
Did you promote the widgets to custom classes?
I'll run another test now. The following are the exact steps I've taken to reproduce this problem:
* Open qt-creator v1.3.1 (linux, 64bit, Qt 4.6.2)
* Create new project: select Qt4 Gui Application, add a mainwindow default class + ui file
* Open the mainwindow.ui file in creator and:
* Add a QStackedWidget widget to the centralWidget.
* Right click on the first page of the stacked widget and click "Promote to ..."
* Make sure QWidget is selected as the BaseClass name and add classname TestPage
-- at this stage, the code will fail to compile. we need to create the class --
* For the project, select "Add New" and select Qt Designer Form Class
* Select Widget from the form template options
* Name it "TestPage", to match the name of the promoted widget above.
-- code now compiles, check the generated code --
After this process, when I check my generated code (ui_mainwindow.h) I see that neither the promoted class, nor the standard QWidget class have been given a parent. The code:
{
if (MainWindow->objectName().isEmpty())
MainWindow
->setObjectName
(QString::fromUtf8("MainWindow"));
MainWindow->resize(600, 400);
centralWidget
= new QWidget(MainWindow
);
centralWidget
->setObjectName
(QString::fromUtf8("centralWidget"));
stackedWidget
->setObjectName
(QString::fromUtf8("stackedWidget"));
stackedWidget
->setGeometry
(QRect(50,
30,
421,
251));
// ***** SEE HERE *****
page = new TestPage();
page
->setObjectName
(QString::fromUtf8("page"));
stackedWidget->addWidget(page);
// ***** AND HERE *****
page_2
->setObjectName
(QString::fromUtf8("page_2"));
stackedWidget->addWidget(page_2);
MainWindow->setCentralWidget(centralWidget);
menuBar
->setObjectName
(QString::fromUtf8("menuBar"));
menuBar
->setGeometry
(QRect(0,
0,
600,
19));
MainWindow->setMenuBar(menuBar);
mainToolBar
->setObjectName
(QString::fromUtf8("mainToolBar"));
MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar
->setObjectName
(QString::fromUtf8("statusBar"));
MainWindow->setStatusBar(statusBar);
retranslateUi(MainWindow);
} // setupUi
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(600, 400);
centralWidget = new QWidget(MainWindow);
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
stackedWidget = new QStackedWidget(centralWidget);
stackedWidget->setObjectName(QString::fromUtf8("stackedWidget"));
stackedWidget->setGeometry(QRect(50, 30, 421, 251));
// ***** SEE HERE *****
page = new TestPage();
page->setObjectName(QString::fromUtf8("page"));
stackedWidget->addWidget(page);
// ***** AND HERE *****
page_2 = new QWidget();
page_2->setObjectName(QString::fromUtf8("page_2"));
stackedWidget->addWidget(page_2);
MainWindow->setCentralWidget(centralWidget);
menuBar = new QMenuBar(MainWindow);
menuBar->setObjectName(QString::fromUtf8("menuBar"));
menuBar->setGeometry(QRect(0, 0, 600, 19));
MainWindow->setMenuBar(menuBar);
mainToolBar = new QToolBar(MainWindow);
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
statusBar = new QStatusBar(MainWindow);
statusBar->setObjectName(QString::fromUtf8("statusBar"));
MainWindow->setStatusBar(statusBar);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
To copy to clipboard, switch view to plain text mode
Did you follow this procedure toutarrive, or have I done something wrong?
Thanks again!
Bookmarks