Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ автоматический disconnect

Автор: 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)
:scratch_one-s_head:

Автор: zss 20.8.2009, 10:12

Цитата(Litkevich Yuriy @ 20.8.2009, 11:07) *
:scratch_one-s_head:

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. следовательно если и вызовется то вызовется переопределенный слот.
опять же тест все покажет. однако зачем и кому надо в этом разбираться?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)