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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt-4.2.0] QDialog - слоты и методы  (Прочитано 5243 раз)
izoomer
Гость
« : Май 24, 2007, 22:53 »

Потребовалось создать свой диалог копирвоания файла с прогресс баром. Так вот создал класс от QDialog в конструткоре рисую прогрессбар и QLabel с именем копируемого файла. Есть метод copy в нем идет копирование в цикле while всех файлов из папки ... в этом цикле соответсвенно делаю setText для  QLabel и setProgress для прогрессбара .. но ничего не выполняется ... то есть код
Код:

JCopyDialog * dlgCpy = new JCopyDialog(this);
dlgCpy->exec();
dlgCpy->copy("myFile.cpp");

то идет копирование, а потом только диалог появляется на экране ... если copy перед exec() рузультат тотже ... как так ?  ....
Записан
SABROG
Гость
« Ответ #1 : Май 24, 2007, 22:57 »

Код:

qApp->processEvents();

?
Записан
Вячеслав
Гость
« Ответ #2 : Май 24, 2007, 23:11 »

это в смысле сунуть в цикл после setText\ setProgress ......
Хотя мне больше нравиться отделять мух от апельсинов - отрисовка отдельно - копирование отдельно .....
Записан
SABROG
Гость
« Ответ #3 : Май 25, 2007, 08:28 »

А тебе точно нужен свой диалог с прогрессбаром или можно использовать QProgressDialog ? Если мухи не нравятся, тогда используй QThread, но это чуть сложнее.
Записан
izoomer
Гость
« Ответ #4 : Май 25, 2007, 13:59 »

Цитата: "SABROG"
А тебе точно нужен свой диалог с прогрессбаром или можно использовать QProgressDialog ?

у меня свой внешний вид всего приложения ... свои прорисовки всех элементов .... потому свой и делаю
Цитировать

Если мухи не нравятся, тогда используй QThread, но это чуть сложнее.

хотел использовать , дане понял алгоритм данного механизма применительно к моей задаче - диалог копирования и само копирование ... может подскажет кто , как прально сделать ?

добавлено спустя 6 минут:

 
Цитата: "Вячеслав"
это в смысле сунуть в цикл после setText\ setProgress ......
Хотя мне больше нравиться отделять мух от апельсинов - отрисовка отдельно - копирование отдельно .....

всунул и ничего не выходит ... выходит только если сделать мой диалог не от  QDialog а от QWidget .... а так если делать copy после exec то естественно все ждет ожидания работы диалога ... а если сopy перед exec то естественно идет копировнеи все , а потом показывается диалог .... как сделать то ?
Записан
SABROG
Гость
« Ответ #5 : Май 25, 2007, 16:23 »

Цитата: "izoomer"
дане понял алгоритм данного механизма применительно к моей задаче - диалог копирования и само копирование ... может подскажет кто , как прально сделать ?


В отдельном потоке копируешь файлов, в главном окне показываешь свой прогрессбар и меняешь состояние в зависимости от данных переданных из QThread. Сигнальчик можно свой повесить в QThread, который будет принимать твой диалог в основном потоке.
Записан
izoomer
Гость
« Ответ #6 : Май 25, 2007, 19:23 »

Цитата: "SABROG"
Цитата: "izoomer"
дане понял алгоритм данного механизма применительно к моей задаче - диалог копирования и само копирование ... может подскажет кто , как прально сделать ?


В отдельном потоке копируешь файлов, в главном окне показываешь свой прогрессбар и меняешь состояние в зависимости от данных переданных из QThread. Сигнальчик можно свой повесить в QThread, который будет принимать твой диалог в основном потоке.

именно так сделал ивсе получилось - спасибо всем.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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