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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Таймер с обратным отсчетом  (Прочитано 21468 раз)
OKTA
Гость
« Ответ #15 : Март 03, 2014, 14:08 »

А что мешает попробовать так сделать?  Непонимающий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #16 : Март 03, 2014, 14:46 »

я же сказал: почитай какие у таймэдита (и его предков) есть методы, тут не надо никаких сигналов. когда ты читаешь текст из текстэдита, ты же не сигналами пользуешься.

первый и последний раз (тут даже догадаться можно): QTime time () const.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Март 03, 2014, 15:14 »

[off]
Цитировать
..самая младшая - пика, самая старшая - черва, а есть еще "5" - без козыря... и.т.д.
Процедура обучения та же самая - и столь же мучительна  Улыбающийся
[/off]
Записан
Alexu007
Гость
« Ответ #18 : Март 06, 2014, 09:11 »

Я написал эту прогу с глобальными переменными и и глобальным таймером - всё работает. Но когда я попытался сделать из "быдлокода" объектно-ориентированный, а именно: переменные из глобальных поместить в объявление класса в private, а сам таймер вместо глобального создавать в конструкторе класса - компилятор в слотах и обработчиках кнопок перестал его видеть.
 
widget.cpp:106: ошибка: 'myTimer' was not declared in this scope

Что ему не хватает?
« Последнее редактирование: Март 06, 2014, 09:13 от Alexu007 » Записан
OKTA
Гость
« Ответ #19 : Март 06, 2014, 09:15 »

Покажи код - быстрее будет.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #20 : Март 06, 2014, 12:45 »

видно таймер не является полем класса. ты наверное его сделал локальной переменной в конструкторе.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alexu007
Гость
« Ответ #21 : Март 06, 2014, 15:46 »

Код
C++ (Qt)
#include "widget.h"
#include "ui_widget.h"
 
 
 
 
//QTimer* myTimer = new QTimer();
 
 
 
Widget::Widget(QWidget *parent) :
   QWidget(parent),
   ui(new Ui::Widget)
{
   ui->setupUi(this);
 
   ui->lcdNumber->setNumDigits(8);
 
   QTimer* myTimer = new QTimer();
 
   QObject::connect(ui->pushButton_1, SIGNAL(clicked()), this, SLOT(MyEventButton_1()));
   QObject::connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(MyEventButton_2()));
 
   QObject::connect(myTimer, SIGNAL(timeout()), this, SLOT(MyEventHandlerTimer()));
}
 
 
 
 
Widget::~Widget()
{
   delete myTimer;
   delete ui;
}
 
...
...

Вот так, как закомментировано - глобальный таймер - работает. Если создание таймера перенести в конструктор - не видит. Как его сделать полем класса? Если в класс в private поместить QTimer* myTimer; а в конструктор класса     QTimer* myTimer = new QTimer(); - то компилируется и запускается. Но при нажатии кнопки "старт" - там где запускается таймер - программа вылетает.

Sorry, сам догадался. В класс нада QTimer* myTimer;, а в конструктор myTimer = new QTimer();
« Последнее редактирование: Март 06, 2014, 15:50 от Alexu007 » Записан
QPeter
Гость
« Ответ #22 : Март 07, 2014, 01:51 »

А не сложно весь проект целиком скинуть?)
Записан
Alexu007
Гость
« Ответ #23 : Март 07, 2014, 07:18 »

Бедненький! Вы всё мучаетесь с этим таймером! Это практически самое простое, что можно запрограммировать в Qt, ну после "Hello World" ессно. Всего-то несколько строчек кода написать нада...

Выложить весь проект целиком, к сожалению, не могу - это было бы некорректно по отношению к другим участникам форума.

Вам нужно самому научиться работать с кнопкой (на форме должна же быть хоть одна кнопка: "Старт") и с таймером. Это очень просто. Легко гуглится. В этом же форуме есть раздел "Готовые решения". Там в самом начале есть несколько выложенных мной (Alexu007) проектов - открывайте какой попроще (например который преобразует "123" в "сто двадцать три") и смотрите, как там реализована работа с кнопкой. Вам для начала нужно сделать форму с кнопкой и меткой label, чтобы при нажатии кнопки в label появлялся любой текст: "Hello World" - классика. Если сделаете это, я вам помогу с таймером.
Записан
QPeter
Гость
« Ответ #24 : Март 07, 2014, 13:14 »

Это- то я сделаю запросто. У меня проблема именно при работе с переменными типа времени.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #25 : Март 07, 2014, 13:22 »

Это- то я сделаю запросто. У меня проблема именно при работе с переменными типа времени.

Ты не знаешь С++, а уже хочешь писать на Qt. Твоё будущее стандартно - насилование форума бесконечными стандартными вопросами. В твоих же силах его изменить.
Записан
QPeter
Гость
« Ответ #26 : Март 07, 2014, 13:36 »

https://drive.google.com/file/d/0B_y-nG4qALcOYW03MDZJQzJGSU0/edit?usp=sharing
Вот если уж не верите.

Цитировать
Ты не знаешь С++, а уже хочешь писать на Qt. Твоё будущее стандартно - насилование форума бесконечными стандартными вопросами. В твоих же силах его изменить.
Возможно, но всё же мои обстоятельства складываются так, что по-другому я пока не могу.
Конечно нельзя во всех своих бедах винить кого-то кроме себя, но нынешняя система образования - ооочень далека от совершенства. И по итогам обучения  студентам выставляют довольно высокие требования к итоговой разработке. Основное из этих требований, "чтоб всё было красиво". По мне так Qt самый удачный вариант для разработки приложения с приятным пользовательским интерфейсом. И в общем пока всё не сделаю, буду наверное всех мучать, прости те уж бедолагу.
Записан
OKTA
Гость
« Ответ #27 : Март 07, 2014, 14:06 »

Лучшее образование - самообразование  Смеющийся
Записан
QPeter
Гость
« Ответ #28 : Март 07, 2014, 14:59 »

Цитировать
Лучшее образование - самообразование 
На самом деле- да..) Единственное что при изучении самостоятельно, ты не ставишь себе строгие временные рамки, по выходу из которых обучение может закончится.)
Записан
OKTA
Гость
« Ответ #29 : Март 07, 2014, 15:09 »

 Непонимающий а как же учиться всю жизнь  Непонимающий
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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