Russian Qt Forum

Qt => Вопросы новичков => Тема начата: keekdown от Май 18, 2013, 18:44



Название: Эвенты
Отправлено: keekdown от Май 18, 2013, 18:44
Всем привет!У меня есть вопрос по поводу events.Я создал в своей программе modal dialog и хочу чтобы оно сграббело одну единственную клавишу,т.е по простому "попросить пользователя нажать клавишу".Как это сделать?


Название: Re: Эвенты
Отправлено: kambala от Май 18, 2013, 19:12
keyPressEvent


Название: Re: Эвенты
Отправлено: keekdown от Май 18, 2013, 19:16
Ну этот виртуальный метод у меня есть и все,что я нажимаю-выводится.Мне нужно нажать и сразу закрыть Диалоговое окно.Как закрыть диалоговое окно?


Название: Re: Эвенты
Отправлено: Serr500 от Май 18, 2013, 19:22
QDialog::close()


Название: Re: Эвенты
Отправлено: keekdown от Май 18, 2013, 19:27
QDialog::close()
Агась,спс.Прочел в доке,что close() это метод класса Qwidget,а QDialog::Done(int) тоже самое,но устанавливает результат выполнения кода во временный обьект.


Название: Re: Эвенты
Отправлено: Serr500 от Май 18, 2013, 19:30
А как Вы думаете?


Название: Re: Эвенты
Отправлено: keekdown от Май 18, 2013, 19:34
А как Вы думаете?
А там 100500 методов.closeEvent() done() , close() -не чувствую полиморфизма)


Название: Re: Эвенты
Отправлено: Serr500 от Май 18, 2013, 19:41
При чём тут полиморфизм? Там же написано QDialog::close(). Вы же говорили о диалоге. А теперь оказалось, что диалогом он является только в вашей терминологии, а на самом деле он виджет. Слот close введён в QWidget и наследуется в QDialog.

P.S. Судя по вашей последней фразе, Вы не понимаете что такое полиморфизм.


Название: Re: Эвенты
Отправлено: keekdown от Май 18, 2013, 19:46
При чём тут полиморфизм? Там же написано QDialog::close(). Вы же говорили о диалоге. А теперь оказалось, что диалогом он является только в вашей терминологии, а на самом деле он виджет. Слот close введён в QWidget и наследуется в QDialog.

P.S. Судя по вашей последней фразе, Вы не понимаете что такое полиморфизм.
Я полностью понимаю что такое полиморфизм.Есть два класса один базовый,другой производный.Они имеют общее поведение-"закрыться".Диалог-это в общем понимании виджет,потому что он унаследован от него.Done() and Close() в контексте этих двух классов означают одно и тоже,просто один из них возращает результат выполнения кода.