Название: Переопределение функций show и hide Отправлено: lighting от Июнь 03, 2010, 15:30 Хотел переопределить поведение диалоговых окно при hide и show, отнаследовался от QDialog
Код
Написал новые обработчики Код Проверяю в дебаггере - в мои методы программа не заходит, show и hide используются стандартные. В чем может быть проблема? Название: Re: Переопределение функций show и hide Отправлено: BRE от Июнь 03, 2010, 15:31 В чем может быть проблема? В том, что они не виртуальные методы.Название: Re: Переопределение функций show и hide Отправлено: lighting от Июнь 03, 2010, 15:39 т.е. переопределять можно только виртуальные методы и в моем случае этого сделать нельзя в принципе, только объобными путями отлавливая все события при которых может быть вызван show и hide и подставлять туда свои обработчики?
Название: Re: Переопределение функций show и hide Отправлено: BRE от Июнь 03, 2010, 15:44 т.е. переопределять можно только виртуальные методы и в моем случае этого сделать нельзя в принципе, только объобными путями отлавливая все события при которых может быть вызван show и hide и подставлять туда свои обработчики? Посмотри на метод:virtual void setVisible ( bool visible ) Название: Re: Переопределение функций show и hide Отправлено: insamo от Июнь 03, 2010, 15:48 В чем может быть проблема? В том, что они не виртуальные методы.Ты ошибся они виртуальные смотри сюда http://doc.trolltech.com/3.0/qdialog.html#showExtension void QDialog::show () [virtual] Название: Re: Переопределение функций show и hide Отправлено: crossly от Июнь 03, 2010, 15:50 В чем может быть проблема? В том, что они не виртуальные методы.Название: Re: Переопределение функций show и hide Отправлено: MoPDoBoPoT от Июнь 03, 2010, 15:51 private slots: ... А вообще, если хочешь задать свое поведение при скрытии/отображении, а не только, когда явно вызываются эти слоты, то надо пререопределять hideEvent()/showEvent(). Название: Re: Переопределение функций show и hide Отправлено: MoPDoBoPoT от Июнь 03, 2010, 15:52 Ты ошибся они виртуальные Версия Qt 3...смотри сюда http://doc.trolltech.com/3.0/qdialog.html#showExtension Название: Re: Переопределение функций show и hide Отправлено: insamo от Июнь 03, 2010, 15:53 В чем может быть проблема? В том, что они не виртуальные методы.Тогда где ты здесь проблему видишь, из контекста постов, оно так и выходит Название: Re: Переопределение функций show и hide Отправлено: insamo от Июнь 03, 2010, 15:58 Ты ошибся они виртуальные Версия Qt 3...смотри сюда http://doc.trolltech.com/3.0/qdialog.html#showExtension сори :-X Название: Re: Переопределение функций show и hide Отправлено: lighting от Июнь 03, 2010, 16:06 BRE, MoPDoBoPoT - в моем случае эти способы не подходят. Я хотел реализовать плавное проявление окна для show и растворение для hide. setVisible не поможет при закрытии окна напр. по Esc, а эвенты это хорошо, но при Hide напр. мое плавное затухание не успеет себя проявить - окно исчезнет мгновенно.
Цитировать а кто сказал что не виртуальные переопределять нельзя... ?? это я предположил из ответа BREНазвание: Re: Переопределение функций show и hide Отправлено: lit-uriy от Июнь 03, 2010, 16:27 >>а кто сказал что не виртуальные переопределять нельзя... ??
дык, их ни когда нельзя было переопределять. Только перегружать, а это не одно и тоже. Название: Re: Переопределение функций show и hide Отправлено: Alex Custov от Июнь 03, 2010, 16:31 BRE, MoPDoBoPoT - в моем случае эти способы не подходят. Я хотел реализовать плавное проявление окна для show и растворение для hide. setVisible не поможет при закрытии окна напр. по Esc, а эвенты это хорошо, но при Hide напр. мое плавное затухание не успеет себя проявить - окно исчезнет мгновенно. А как? Я тоже делал несколько типов затухания, большая проблема в том, что они жоско тормозят. Спасает только использование композитного менеджера и специального затухания, заточенного под него. Название: Re: Переопределение функций show и hide Отправлено: Alex Custov от Июнь 03, 2010, 16:37 >>а кто сказал что не виртуальные переопределять нельзя... ?? дык, их ни когда нельзя было переопределять. Только перегружать, а это не одно и тоже. если быть точным, то http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/575631e6ba581ee6/d4e4c36db398d560?hl=ru&q=overloading+overriding+hiding Название: Re: Переопределение функций show и hide Отправлено: crossly от Июнь 03, 2010, 16:43 >>а кто сказал что не виртуальные переопределять нельзя... ?? простите за терминологию.... дык, их ни когда нельзя было переопределять. Только перегружать, а это не одно и тоже. по вопросу..... по моему товарисч MoPDoBoPoT указал на проблему в коде Код: private slots: Название: Re: Переопределение функций show и hide Отправлено: lighting от Июнь 03, 2010, 21:34 А как? Я тоже делал несколько типов затухания, большая проблема в том, что они жоско тормозят. Спасает только использование композитного менеджера и специального затухания, заточенного под него. Да обычно, setWindowOpacity + QTimeLine... Разрабатывать только начал, так что графику еще не накручивал, но пока особых тормозов не заметил.Название: Re: Переопределение функций show и hide Отправлено: Alex Custov от Июнь 03, 2010, 23:34 А как? Я тоже делал несколько типов затухания, большая проблема в том, что они жоско тормозят. Спасает только использование композитного менеджера и специального затухания, заточенного под него. Да обычно, setWindowOpacity + QTimeLine... Разрабатывать только начал, так что графику еще не накручивал, но пока особых тормозов не заметил.setWindowOpacity работает только в композитном WM - тормозов нет (и то только на нормальном железе и дровах), но композитного менеджера не у каждого встретишь. |