LINUX.ORG.RU

История изменений

Исправление hobbit, (текущая версия) :

Все таки я не понимаю, почему не наследование...

Не нужно наследование там, где можно обойтись включением. У Вас повторяющийся участок - это те 4 кнопки, которые кочуют из одного окна в другое. Вот из них, как Вам советовали выше, делаете отдельный класс, хотите из QWidget, хотите из QFrame, и используете (включаете) его в своих формах как поле класса. Оно и логичнее - эти 4 кнопки фрагмент формы, а не отдельная форма. Наследование было бы логично во втором случае.

Открою страшную тайну - объект своего класса можно даже в ui-формы включать, если .ui руками подправить. Правда, насколько я понимаю, это нерекомендуемый метод. Рекомендуемый - сделать из своих классов плагин к дизайнеру, но это уже сложнее. В большинстве случаев достаточно включать программно в cpp, не забывая про layout-ы. Собственно, во всех demos и examples к Qt так и делается, виджеты включаются в окна непостредственно из cpp. Там же можно посмотреть разные комбинации с layout-ами.

Исходная версия hobbit, :

Все таки я не понимаю, почему не наследование...

Не нужно наследование там, где можно обойтись включением. У Вас повторяющийся участок - это те 4 кнопки, которые кочуют из одного окна в другое. Вот из них, как Вам советовали выше, делаете отдельный класс, хотите из QWidget, хотите из QFrame, и используете его в своих формах. Оно и логичнее - эти 4 кнопки фрагмент формы, а не отдельная форма.

Открою страшную тайну - объект своего класса можно даже в ui-формы включать, если .ui руками подправить. Правда, насколько я понимаю, это нерекомендуемый метод. Рекомендуемый - сделать из своих классов плагин к дизайнеру, но это уже сложнее. В большинстве случаев достаточно включать программно в cpp, не забывая про layout-ы. Собственно, во всех demos и examples к Qt так и делается, виджеты включаются в окна непостредственно из cpp. Там же можно посмотреть разные комбинации с layout-ами.