Название: Мультинаследование от QObject Отправлено: deMax от Сентябрь 30, 2015, 21:29 Есть окна в приложении они наследуются от класса class MyWidget: public QWidget.
Одному окну понадобилось занаследоваться от QMainWindow (меню через дизайнер, панели). Как его перенаследовать? MyWidget реализует showEven, hideEvent, а так же для хранения множества виджетов в векторах. Название: Re: Мультинаследование от QObject Отправлено: Racheengel от Октябрь 01, 2015, 01:47 Через темплейт,например
Название: Re: Мультинаследование от QObject Отправлено: deMax от Октябрь 01, 2015, 10:35 А пример можно? как превратить b в наследника QMainWindow?
Код: class MyWidget: public QWidget{ А если в приложении 5 окон будут от QMainWindow унаследованы? Какие могут возникнуть проблемы? Название: Re: Мультинаследование от QObject Отправлено: Alex Custov от Октябрь 01, 2015, 11:27 наследование - вещь статическая. Её нельзя "перенаследовать" в рантайме.
Название: Re: Мультинаследование от QObject Отправлено: Igors от Октябрь 01, 2015, 12:37 Есть окна в приложении они наследуются от класса class MyWidget: public QWidget. Никак, нужно менять наследование на членствоОдному окну понадобилось занаследоваться от QMainWindow (меню через дизайнер, панели). Как его перенаследовать? Название: Re: Мультинаследование от QObject Отправлено: kai666_73 от Октябрь 06, 2015, 14:42 Есть окна в приложении они наследуются от класса class MyWidget: public QWidget. Никак, нужно менять наследование на членствоОдному окну понадобилось занаследоваться от QMainWindow (меню через дизайнер, панели). Как его перенаследовать? Двойное делегирование поможет добиться желаемого. Название: Re: Мультинаследование от QObject Отправлено: Racheengel от Октябрь 06, 2015, 14:53 А если что-то типа этого?
Код: template<class T = QWidget> Тогда при наследовании можно будет сделать примерно так: Код: class MyMainWidget: public MyWidget<QMainWindow> Название: Re: Мультинаследование от QObject Отправлено: Igors от Октябрь 06, 2015, 15:12 А если что-то типа этого? К разговору в "той" теме. Вот даже такой template (казалось бы - безобидно, и основания-то есть) легко может оказаться неуместным. Классы-то разные, и их не привести друг к другу. |