Название: Вызов функции при обработке ok Отправлено: lokoArt от Января 16, 2010, 14:48 У меня есть диалог, на нём есть QDialogButtonBox, когда на нём нажимается кнопка OK, нужно выполнить метод некого класса. Я поступил так, создал слот в классе этого диалога, потом создал коннект при нажатии на Ok, а в этом слоте вызываю метод некоторого класса. Вот вопрос: можно ли сделать тоже самое только без создания слота?
Название: Re: Глобальная переменная mainWindow Отправлено: ilot от Января 16, 2010, 15:02 Но теперь мне просто интересно, всё таки как создать глобальнуб переменную типа QWidget? Ну как вариант можно объявить глобальный указатель QWidget* pwgt = 0;Название: Re: Вызов функции при обработке ok Отправлено: zenden от Января 16, 2010, 16:09 и всё же не стоит так втихаря редактировать изначальные сообщения
Название: Re: Вызов функции при обработке ok Отправлено: Marat(Qt) от Января 16, 2010, 16:13 если метод некого класса является слотом, или можно сделать его слотом, то можно сделать коннект слота некого класса с сигналом кнопки ок.
ещё есть вероятность, что вы вызываете диалог командой exec, и после нажатия на ok ваш диалог закрывается, тогда можно оформить это так: Код: if(MyDialog.exec()==1)NekiyClass::method(); Название: Re: Вызов функции при обработке ok Отправлено: lokoArt от Января 16, 2010, 16:15 и всё же не стоит так втихаря редактировать изначальные сообщения да...я тоже об этом подумал((( я думал можно будет все сообщения удалить, а нельяз((( Название: Re: Вызов функции при обработке ok Отправлено: lokoArt от Января 16, 2010, 16:41 если метод некого класса является слотом, или можно сделать его слотом, то можно сделать коннект слота некого класса с сигналом кнопки ок. ещё есть вероятность, что вы вызываете диалог командой exec, и после нажатия на ok ваш диалог закрывается, тогда можно оформить это так: Код: if(MyDialog.exec()==1)NekiyClass::method(); эх вероятности нету...я вызываю методом show(). А как лучше вызывать? Название: Re: Вызов функции при обработке ok Отправлено: Marat(Qt) от Января 16, 2010, 16:55 нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену. В этом случае можно использовать приведенную выше конструкцию.
Название: Re: Вызов функции при обработке ok Отправлено: BlackTass от Января 16, 2010, 16:57 нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену. ну если диалог немодальный, то как раз show() и нужен. ТС не написал же какой у него диалогНазвание: Re: Вызов функции при обработке ok Отправлено: Marat(Qt) от Января 16, 2010, 17:03 нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену. ну если диалог немодальный, то как раз show() и нужен. ТС не написал же какой у него диалогНазвание: Re: Вызов функции при обработке ok Отправлено: BlackTass от Января 17, 2010, 23:15 Ну вообще я зря так категоричен, тут придется согласиться. Но суть диалога в том чтобы быть модальным. Т.о. учитывая ваше замечание, стоит лишь посоветовать ТС прочитать документацию по QDialog::exec() или литературу по диалогам в Qt Суть диалога в том что он может быть модальным ) немодальные диалоги хоть и реже, но все же бывают нужныНазвание: Re: Вызов функции при обработке ok Отправлено: DS_tm от Января 18, 2010, 12:40 Суть диалогового окна, позволять пользователю взаимодействовать с приложением, от сюда и название. А каким это окно будет, зависит уже от его целей.
По существу, в таких случаях лучше использовать QDialogButtonBox (хотя можно использовать и отдельные кнопки, коннектя их к соответствующим слотам) и переопределять публичные слоты accept() и reject(). |