Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Jkc от Май 19, 2005, 14:07 Привет, есть такая задача.
Нужно в QMassageBox вывести время отсчёта с момента запуска QMassageBox. Начиная с нуля т.е. 00:00:00 -> и вперёд формат ЧЧ:ММ:СС Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Admin от Май 19, 2005, 15:33 Наследуешся от QMessageBox
Вставляешь тред как член класса Тред будет время выводить Вызываешь свой клас из базы и вперед! Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Jkc от Май 19, 2005, 15:49 1. Что такой тред?
2. Мне нужно не текущее время выводить а отсчёт времени. Что то типа секундомера. Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Admin от Май 19, 2005, 16:12 Цитата: "Jkc" 1. Что такой тред? 2. Мне нужно не текущее время выводить а отсчёт времени. Что то типа секундомера. 1. Тред - это процесс идущий паралельно твоей программе. Смотреть QThread. 2. Секундомер делается так: Берется всемя и вычитается из текущего. PS: Так же можешь использовать класс QTimer Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: ElderOrb от Май 19, 2005, 17:00 Имхо трэд не нужен, достаточно таймера (всё равно быстрее 24-х раз в секунду обновлять messagebox незачем - человек не заметит). К тому же трэд напрямую обновлять messagebox и не сможет, он всего лишь будет постить ивенты, а это лишний геморрой.. Куда проще создать слот, который будет апдэйтить messagebox значением времени с момента запуска таймера (метод QTime::elapsed()), подключить этот слот к таймеру, затем запустить таймер и одновременно запустить счётчик времени QTime::start())
Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Jkc от Май 19, 2005, 17:47 Както ну совсем не понятно
Цитировать Куда проще создать слот, который будет апдэйтить messagebox значением времени с момента запуска таймера (метод QTime::elapsed()), подключить этот слот к таймеру, затем запустить таймер и одновременно запустить счётчик времени QTime::start()) Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: ElderOrb от Май 19, 2005, 23:07 ;))) Я имел в виду что-то вроде этого..
... private: QTime time; QTimer timer; QMessageBox* messageBox; public slots: void updateMessageBox(); .... test() { messageBox = new QMessageBox(); connect(&timer, SIGNAL(timeout()), this, SLOT(updateMessageBox())); timer.start(50); time.start(); } void test::updateMessageBox() { messageBox->setText(QString::number(time.elapsed())); } p.s. время будет выводиться в милисекундах, но это всего лишь идея.. Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Jkc от Май 20, 2005, 15:49 спасибо за помощь
кое как заработало, но есть желание что бы таймер отображался в стиле QLCDNumber не знаешь как его запихнуть в QMessageBox? Название: QMassageBox + QTimer как вывести отсчёт времени? Отправлено: Keiko от Май 20, 2005, 18:36 Мне непонятно, а почему собственно QMessageBox ? Наследуешься от QDialog. Коннектишь кнопку OK к accept() , Cancel - к reject(). Далее в дизайнере рисушь всё что душе угодно :)
Создаёшь таймер (QTimer), коннектишь сигнал timeout() к соотв. слоту, остальное - дело техники :) |