@gense

Как сделать чтобы открывался только один инстанс дочернего окна?

Сабж. Одно и то же окно может открываться из разных панелек/менюшек, соответственно, хранить ссылку на объект окна где-то в одном месте - не очень. Пихать её в синглтон тоже кажется не очень. Хранить статическую ссылку на объект внутри класса самого окна? Тоже некрасиво. Как вообще это делается у дедов-профессионалов, есть практикуемый хороший элегантный способ?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ittakir
Как у вас происходит показ окна? Вы скорее всего создаете новый объект с помощью new, устанавливаете ему какие-то параметры и вызываете show().
Если вы хотите чтобы было видно не более одного экзумпляра окна, вы не можете создавать объекты с помощью new, вы должны вызвать какую-то функцию, которая предоставит вам готовый объект (новый или уже существующий). Как она будет реализована - решать вам. Самое простое - глобальная переменная. Далее можно её скрыть в классе MainWindow и выдавать по запросу через публичный метод MainWindow. Плюсом этого подхода будет то, что можно MainWindow сделать родителем этого объекта, а значит он автоматически удалится при завершении программы и отображаться будет тоже вместе с главным окном. Можно сделать и синглтон, но тут нужно внимательно следить, когда он будет создан и будет ли удален потом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы