У меня есть приложение со многими окнами (QWidgets). Я не сохранил список открытых окон, поэтому каждый раз, когда я хочу закрыть окно, я должен его восстановить.Могу ли я передать «это» Q_Slot?
В частности, каждое из этих окон называется здесь SubWindow. Каждый класс SubWindow содержит макет с MultiEditor * sEditors, в котором есть меню с действием, которое закрывает текущее окно. Каждый SubWindow создается внутри MainWindow.
У меня есть два плана. 1) уничтожение подокна из внутри себя, путем добавления в конструктор подокне
connect(sEditors, SIGNAL(closeWindow()),
this, closeWindow()));
или
2) уничтожение подокна из класса MainWindow, путем добавления в конструктор подокне
connect(sEditors, SIGNAL(closeWindow()),
main, SLOT(closeWindow(this)));
Около 1), я не понимаю, как я могу закрыть и уничтожить QWidget изнутри себя (удалить это;, похоже, не работает, но я могу попробовать еще раз).
Около 2) мой SLOT (closeWindow (this)), похоже, не срабатывает, поэтому мне интересно, могу ли я передать «это» в качестве аргумента.
По какой-то причине (что я не знаю), моя deleteLater() не работает. Я запускаю его в моем closeWindow(), и мой QWidget остается -> он не исчезает. QWidget не исчезает, даже если я пишу close() [или this-> close()] или hide() [this-> hide()] –
Кажется, вы закрываете/удаляете/скрываете неправильный виджет. Убедитесь, что 'this' указывает на правильный объект в вашем слоте с вашим отладчиком –
Очень хорошо, спасибо! –