Russian Qt Forum
Мая 21, 2025, 21:39
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Вызов функции при обработке ok
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вызов функции при обработке ok (Прочитано 4730 раз)
lokoArt
Гость
Вызов функции при обработке ok
«
:
Января 16, 2010, 14:48 »
У меня есть диалог, на нём есть QDialogButtonBox, когда на нём нажимается кнопка OK, нужно выполнить метод некого класса. Я поступил так, создал слот в классе этого диалога, потом создал коннект при нажатии на Ok, а в этом слоте вызываю метод некоторого класса. Вот вопрос: можно ли сделать тоже самое только без создания слота?
«
Последнее редактирование: Января 16, 2010, 15:52 от lokoArt
»
Записан
ilot
Гость
Re: Глобальная переменная mainWindow
«
Ответ #1 :
Января 16, 2010, 15:02 »
Цитата: lokoArt от Января 16, 2010, 14:48
Но теперь мне просто интересно, всё таки как создать глобальнуб переменную типа QWidget?
Ну как вариант можно объявить глобальный указатель QWidget* pwgt = 0;
Записан
zenden
Гость
Re: Вызов функции при обработке ok
«
Ответ #2 :
Января 16, 2010, 16:09 »
и всё же не стоит так втихаря редактировать изначальные сообщения
Записан
Marat(Qt)
Гость
Re: Вызов функции при обработке ok
«
Ответ #3 :
Января 16, 2010, 16:13 »
если метод некого класса является слотом, или можно сделать его слотом, то можно сделать коннект слота некого класса с сигналом кнопки ок.
ещё есть вероятность, что вы вызываете диалог командой exec, и после нажатия на ok ваш диалог закрывается, тогда можно оформить это так:
Код:
if(MyDialog.exec()==1)NekiyClass::method();
Записан
lokoArt
Гость
Re: Вызов функции при обработке ok
«
Ответ #4 :
Января 16, 2010, 16:15 »
Цитата: zenden от Января 16, 2010, 16:09
и всё же не стоит так втихаря редактировать изначальные сообщения
да...я тоже об этом подумал((( я думал можно будет все сообщения удалить, а нельяз(((
Записан
lokoArt
Гость
Re: Вызов функции при обработке ok
«
Ответ #5 :
Января 16, 2010, 16:41 »
Цитата: Marat(Qt) от Января 16, 2010, 16:13
если метод некого класса является слотом, или можно сделать его слотом, то можно сделать коннект слота некого класса с сигналом кнопки ок.
ещё есть вероятность, что вы вызываете диалог командой exec, и после нажатия на ok ваш диалог закрывается, тогда можно оформить это так:
Код:
if(MyDialog.exec()==1)NekiyClass::method();
эх вероятности нету...я вызываю методом show(). А как лучше вызывать?
Записан
Marat(Qt)
Гость
Re: Вызов функции при обработке ok
«
Ответ #6 :
Января 16, 2010, 16:55 »
нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену. В этом случае можно использовать приведенную выше конструкцию.
«
Последнее редактирование: Января 16, 2010, 16:58 от Marat(Qt)
»
Записан
BlackTass
Гость
Re: Вызов функции при обработке ok
«
Ответ #7 :
Января 16, 2010, 16:57 »
Цитата: Marat(Qt) от Января 16, 2010, 16:55
нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену.
ну если диалог немодальный, то как раз show() и нужен. ТС не написал же какой у него диалог
Записан
Marat(Qt)
Гость
Re: Вызов функции при обработке ok
«
Ответ #8 :
Января 16, 2010, 17:03 »
Цитата: BlackTass от Января 16, 2010, 16:57
Цитата: Marat(Qt) от Января 16, 2010, 16:55
нельзя вызывать методом show, это же диалог. Надо методом exec вызывать, он вернет сообщение о том, нажал ли пользователь OK или Отмену.
ну если диалог немодальный, то как раз show() и нужен. ТС не написал же какой у него диалог
Ну вообще я зря так категоричен, тут придется согласиться. Но суть диалога в том чтобы быть модальным. Т.о. учитывая ваше замечание, стоит лишь посоветовать ТС прочитать документацию по QDialog::exec() или литературу по диалогам в Qt
Записан
BlackTass
Гость
Re: Вызов функции при обработке ok
«
Ответ #9 :
Января 17, 2010, 23:15 »
Цитата: Marat(Qt) от Января 16, 2010, 17:03
Ну вообще я зря так категоричен, тут придется согласиться. Но суть диалога в том чтобы быть модальным. Т.о. учитывая ваше замечание, стоит лишь посоветовать ТС прочитать документацию по QDialog::exec() или литературу по диалогам в Qt
Суть диалога в том что он может быть модальным ) немодальные диалоги хоть и реже, но все же бывают нужны
Записан
DS_tm
Гость
Re: Вызов функции при обработке ok
«
Ответ #10 :
Января 18, 2010, 12:40 »
Суть диалогового окна, позволять пользователю взаимодействовать с приложением, от сюда и название. А каким это окно будет, зависит уже от его целей.
По существу, в таких случаях лучше использовать QDialogButtonBox (хотя можно использовать и отдельные кнопки, коннектя их к соответствующим слотам) и переопределять публичные слоты accept() и reject().
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...