Как сохранить пользовательские DockWidgets - PullRequest
3 голосов
/ 02 марта 2010

Я хочу сохранить свои пользовательские DockWidgets (унаследованные от QDockWidget) с помощью функции saveState () / restoreState (), которую предоставляет мое MainWindow.

У меня есть два вопроса: 1. Как я могу сохранить и восстановить мои Dockwidgets?
- Я уже пытался зарегистрировать свои собственные DockWidgets в качестве QMetaType и реализовать стандартные конструкторы, операторы Copy Constructor, Destructor и Streaming.
2. Как определить загруженные DockWidgets?
- Например: если2 DockWidgets были сохранены, и я загружаю их с помощью restoreState (), есть ли способ получить указатели на эти загруженные виджеты?

Спасибо, Тобиас

Ответы [ 3 ]

2 голосов
/ 02 марта 2010

Вы читали документацию QMainWindow::saveState?

Ваши объекты имеют уникальные имена? (QObject::setObjectName)

В качестве примечания, объекты QObject НЕ должны иметь конструктор копирования, см. Q_DISABLE_COPY

1 голос
/ 13 марта 2010

Кажется, вы что-то неправильно поняли в restoreState - он не будет воссоздавать ваши док-виджеты (как это вообще может быть?), А просто восстановит их положение и статус (скрытый, свободный или закрепленный). Вам все равно придется создавать виджеты дока вручную, прежде чем вызывать restoreState.

1 голос
/ 02 марта 2010

Я уже решил вопрос 2:
очень просто .. QList < QDockWidget *> dockWidgetList = findChildren < QDockWidget *> ();
Но список в настоящее время пуст после загрузки, потому что нет загружаемого виджета;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...