основной класс приложения.
Все виджеты я создаю в конструкторе через new, и храню указатели на них в классе - чтобы был доступ из других функций класса. Как это делается правильно - я не знаю, но во всяких обучалках виджеты создаются просто переменными на стеке.
Я захотел переделать проект так, чтобы обойтись без динамического выделения памяти - речь про интерфейс всё-таки, его при старте создал и не трогаешь. Для этих целей я список указателей на виджеты, который в классе хранится, заменил на просто переменные.
Было вот так:
private:
QVBoxLayout *mainLayout = nullptr;
Стало вот так:
private:
QVBoxLayout mainLayout;
Результат - компилится, запускается приложение, вместо интерфейса белая заливка. Никаких ошибок, в дебаге исполнение на строчке return a.exec();
Что делать, куда копать чтобы заработало, как вообще идеологически правильно реализовывать UI - создавать виджеты внутри конструктора класса главного окна, создавать их в основном цикле приложения и потом аттачить назначая parent, или еще как?
если хочешь без этих указателей то делай sharedPointer
Обсуждают сегодня