может направьте в нужный уголок интернета, где можно грамотно посмотреть. Если коротко, есть класс с формой, который в зависимости от текущего шага, выполняет разный функционал одинаковым графическим интерфейсом. Хотел, чтобы не городить всякие флаги и т.п., сделать так, чтобы два класса использовало один *.ui файл.
namespace Ui {
class WorkerWithWords: public Ui_WorkerWithWords {};
class WordCreator : public Ui_WorkerWithWords{};
} // namespace Ui
Если строку про класс WordCreator дописать руками в ui_somename.h, то всё работает, но до первой пересборки проекта. Собственно, вопрос в том, а можно ли как-то повлиять на создание этого файла или может есть какой-то более правильный подход в использовании формы?
Не хочется просто создавать второй класс с формой, где её содержимое будет идентичным, просто поведение другим
Можно скопировать код ui_somename.h в свой отдельный *.h и подключить там где нужно и как нужно.
За генерацию отвечает uic. У вас скорее всего есть класс ::WorkerWithWords, который включает Ui::WorkerWithWords* ui как поле. Ожидается, что править нужно именно его. Поэтому, если вам нужна другая функциональность, то вы должны сделать копию своего ::WorkerWithWords с именем ::WordCreator и вносить изменения уже в него в соответствии с требуемой логикой. Думаю, что полезно переименовать сам ui-класс во что-то нейтральное по отношению к WorkerWithWords и WordCreator. Назовите его тем, чем он является, а не тем, что делает. А вот уже свои классы называйте в соответствии с тем, что они делают
Обсуждают сегодня