Автор: zss 19.8.2009, 14:24
у меня создается окно. его слот подписывается на сигнал и окно отображается. Это диалог.
Безопасно ли просто закрыть окно (соответственно просто разрушить его). Произойдет ли автоматическое отключение от сигнала ?
если нет, то как этого добиться ?
Автор: BRE 19.8.2009, 14:26
Цитата(zss @ 19.8.2009, 15:24)
Безопасно ли просто закрыть окно (соответственно просто разрушить его). Произойдет ли автоматическое отключение от сигнала ?
Произойдет.
Автор: zss 20.8.2009, 9:59
Цитата(BRE @ 19.8.2009, 15:26)
Произойдет.
спасибо. вроде получилось.
Только возник такой вопрос. У QWidget есть слот repaint. Он возможно используется для перерисовки.
Но я у QDialog (наследника QWindow) хочу создать слот с этим же именем.
Что произойдет если кто-то подпишется на этот слот. Будет вызван мой или QWidget - это же не виртуальный слот.
Есть подозрение, что будет обычное перекрытие метода. Нужно ли тогда предпринять какие действия, для вызова QWidget::repaint ?
Автор: Litkevich Yuriy 20.8.2009, 10:07
Цитата(zss @ 20.8.2009, 13:59)
QDialog (наследника QWindow)
Автор: zss 20.8.2009, 10:12
Цитата(Litkevich Yuriy @ 20.8.2009, 11:07)
QWidget
Автор: kwisp 20.8.2009, 10:15
Цитата(zss @ 20.8.2009, 10:59)
Он возможно используется для перерисовки.
не возможно а 100%
Цитата(zss @ 20.8.2009, 10:59)
Но я у QDialog (наследника QWindow) хочу создать слот с этим же именем.
уважаемый вы что китайский коммунист? сами придумываете трудности и сами преодолеваете?
шутка.
вообще такое не рекомендуется.
при чем тут виртуальный слот или нет?
Автор: Litkevich Yuriy 20.8.2009, 10:17
Цитата(zss @ 20.8.2009, 13:59)
очу создать слот с этим же именем.
плохая затея, лучше уникальное имя придумай.
Цитата(kwisp @ 20.8.2009, 14:15)
при чем тут виртуальный слот или нет?
еслиб был виртуальный, то вызывался бы слот объекта при соединении с ним. (в случае его существования)
Автор: kwisp 20.8.2009, 10:25
Цитата(Litkevich Yuriy @ 20.8.2009, 11:17)
еслиб был виртуальный, то вызывался бы слот объекта при соединении с ним. (в случае его существования)
ни че не понял.
функции и методы можно переопределять и без виртуальных "примочек".
вообще такие вопросы каверзные лучше проверять тестами что и как вызовется соберется ли без ошибок и предупреждений не будет ли ругаться moc при выполнение программы и прочее.
надо посмотреть код Qt что там используется при вызове слота по соединению указатель на QObject или преобразованный указатель на верхний по иерархии класс содержащий Q_OBJECT. я думаю скорее всего 2. следовательно если и вызовется то вызовется переопределенный слот.
опять же тест все покажет. однако зачем и кому надо в этом разбираться?