crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Rocky
  опции профиля:
сообщение 24.12.2008, 22:16
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Как сделать, чтобы если пользователь нажимает "ОК", то если небыло введено какое-то значение, то диалоговое окно не закрывалось?

Спасибо!

Потому что как я понимаю обработчик ОК вызывается уже после закрытия самого диалогового окна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
molchanoviv
  опции профиля:
сообщение 24.12.2008, 23:37
Сообщение #2


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Ну так и тут QDialog::Accepted и если не ошибаюсь QDialog::Rejected Но зачем тебе это? Может просто сделать окно немодальным? Я просто немного не понял.

Сообщение отредактировал molchanoviv - 24.12.2008, 23:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 25.12.2008, 0:02
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(molchanoviv @ 24.12.2008, 23:37) *
Ну так и тут QDialog::Accepted и если не ошибаюсь QDialog::Rejected Но зачем тебе это? Может просто сделать окно немодальным? Я просто немного не понял.

А откуда их возвращать? Из closeEvent? А как узнать тогда, сам этот closeEvent был вызван после нажатия OK или Cancel? Можно конечно через флаги (переменные типа bool) все сделать.... Но это какое-то химиченье ...имхо....
Немодальным окно сделать нельзя, т.к. нельзя давать пользователю делать какие-то действия, пока он не завершит текущие грубо говоря.

Цитата
Я просто немного не понял.

Есть модальное диалоговое окно. Есть кнопка OK (имя объекта okButton). Как сделать, чтобы по нажатию на ОК диалоговое окно закрывалось, если все поля в нем заполнены правильно, и не закрывалось, если хотя бы одно из полей не заполнено. В приведенном выше коде диалоговое окно закрывается всегда.

kwisp

Ок, доберусь до работы попробую. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.12.2008, 0:15
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


смотри. по нажатии на кнопке она высылает сигнал clicked()

соединяешь сигнал этой кнопки со слотом обработчиком где нибудь скажем в конструкторе.
connect(&okButton,SIGNAL(clicked()),this,SLOT(CheckField()));

::CheckField()//вызовется при нажатии на кнопке
{
if([хоть одно поле не заполнено == true) return;//проверяешь что тебе надо

this->quit();//закрываешь если надо
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 27.6.2025, 3:31