Russian Qt Forum
Сентябрь 30, 2024, 10:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: модальный диалог  (Прочитано 2966 раз)
Garfild
Гость
« : Февраль 27, 2010, 13:44 »

А может ли модальный диалог не иметь кнопок "OK" и "отмена", к которым привязываются соответственно слоты "accept" и "reject"?
У меня вот просто в конструкторе выполняется последовательность действий и если все нормально,то вконце вызывается QDialog::accept(); и диалог соответственно закрывается...только вот при вызове такого диалога,он отрабатывает все что мне нужно,но не закрывается...такое ощущение,что "accept" должно обязательно к кнопке привязываться, а не вызываться в конструкторе
Записан
voronElf
Гость
« Ответ #1 : Февраль 27, 2010, 14:15 »

к кнопке привязывать необязательно, кнопок может и не быть (хотя не очень себе представляю, для чего диалог без кнопок закрытия)

Дело в другом. Конструктор имеется ввиду конструктор диалога ? Тогда жесть. диалог сначала создается (конструктор) но просто лежит в памяти. Чтобы показать диалог, нужно вызвать exec(). А вот после этого иммет смысл accept() или reject(). Зачем вызывать accept в конструкторе ?
Записан
Akaiten
Гость
« Ответ #2 : Февраль 27, 2010, 14:18 »

А может ли модальный диалог не иметь кнопок "OK" и "отмена", к которым привязываются соответственно слоты "accept" и "reject"?
может, обычно тогда accept() или reject(), или подобные им методы вызываются из кода

Что это за диалог такой, который в конструкторе что-то делает и тут же должен закрываться  Шокированный? Непонятно...
 Строит глазки
Записан
Garfild
Гость
« Ответ #3 : Февраль 28, 2010, 14:08 »

Спасибо за отоветы...Эт действительно конечно парадокс - модальный диалог без взаимодействия с пользователем )))..
Я просто хотел вынести в отдельный класс процесс копирования таблиц...и если копирование прошло нормально ProgressBar бы закрылся(т.е. вызвался бы метод accept) и вывелось соответственное сообщение в главной форме. А если произошли проблемы при копировании, то ProgressBar не стал бы закрываться,показывая процент выполнения (т.е. вызвался бы метод reject)
Но сейчас думаю,что этонаверное глупая идея...нужно просто это сделать отдельной функцией в главном классе...
Или вы можт чего-нить другое посоветуете  Подмигивающий
Записан
voronElf
Гость
« Ответ #4 : Март 01, 2010, 08:57 »

Если задача в том, чтобы прогресс бар показывать, пока идет копирование, то посмотри в сторону QProgressDialog. Для быстрого действия там есть время задержки старта (minimumDuration) : если операция будет завершена быстрее этого времени, прогресс и не будет показан за ненадобностью.

ПС: не очень понятно, если копирование завершилось ошибочно, зачем прогресс показывать после.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.