Название: [Решено] Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: Пытон от Январь 06, 2012, 14:53 Код
Окно MyDialog открывается, но функция не ждёт его закрытия и сразу переходит к оператору return. Окно MyDialog создано как диалог: MyDialog = QtGui.Qdialog(MyParentForm). Флаг модальности установлен: MyDialog.setWindowModality(1) Как заставить функцию дождаться закрытия диалогового окна? Мне нужно заполучить данные о нажатиях на клавиши в диалоговом окне прежде чем выйти из этой функции. Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: BRE от Январь 06, 2012, 14:55 MyDialog.exec()?
Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: Пытон от Январь 06, 2012, 15:19 Вы - гений!
П.С. Почему в моём учебнике ни разу не упоминается этот exec, спрашивается??? П.П.С. Спасибо. Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: iroln от Январь 06, 2012, 16:53 Только
Код Запускает цикл сообщений окна. В учебнике должно быть про это написано, как же без этого то? Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: Пытон от Январь 06, 2012, 17:47 А я использовал exec без символа подчёркивания и всё работает. exec и exec_ чем-то отличаются?
Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: iroln от Январь 06, 2012, 18:04 Хм...
Просто дело в том, что exec() - это функция стандартной библиотеки (ссылка) (http://docs.python.org/release/3.1.3/library/functions.html#exec). В питоне вроде как раньше нельзя было называть методы классов так же как функции стандартной библиотеки. Поэтому в PyQt4 и PySide exec() заменён на exec_(). Как вы могли использовать exec() в питоне не понятно. Название: Re: Вызов окна из функции. Нужно, чтобы функция ждала закрытия окна. Отправлено: Пытон от Январь 08, 2012, 18:41 Может в третьем питоне какие-то изменения? На нём учусь писать.
|