Итак, у меня есть программа, которая использует подкласс QMainWindow для виджетов QMdiArea.Я делаю это только потому, что QDockWidgets можно использовать только в QMainWindow (а моему подклассу нужны виджеты для док-станции).
Я тестировал сериализацию моего класса в целях сохранения, и мой указатель был неверным.Вот код
if (ui->mdiMain->subWindowList().length() > 0)
{
QString path = QFileDialog::getSaveFileName(this, "Save Build Order", "" ,"*.cbo");
if (path > 0)
{
QFile file(path, this);
if (file.open(QFile::WriteOnly) == true)
{
QWidget* widget = reinterpret_cast<QWidget*>(ui->mdiMain->activeSubWindow());
WidgetBuildOrder* widgetBuildOrder = reinterpret_cast<WidgetBuildOrder*>(widget);
QDataStream stream(&file);
stream << widgetBuildOrder;
file.close();
ui->statusBar->showMessage("Save Successful.", 5000);
}
}
}
}
WidgetBuildOrder является подклассом MainWindow.
, поэтому я подумал, что могу продолжать приводить указатель к тому, чем он является на самом деле.Когда я создал область MDI, я передал новый WidgetBuildOrder.Есть ли способ сделать это?
Чтобы уточнить, после приведения я получаю указатель, который просто указывает на мусор.Не те значения, которые установлены в WidgetBuildOrder, который у меня фактически открыт.
Любая помощь будет оценена,
Спасибо,
Jec