crossplatform.ru

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


  Ответ в Фигуры Лиссажу
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 29.10.2010, 21:37
 
Цитата(Алексей1153 @ 29.10.2010, 23:45) *
QMainWindow, точно утверждать не могу, но, возможно, ты соединяешь сигнал со слотом ещё раз, следовательно таймер срабатывает с "дребезгом"
Алексей, почти в яблочко. Только вместо дребезга картинка такая:
сколько раз сигнал соединён с одним и тем же слотом, столько раз он и будет доставлен в слот.

QMainWindow, Если MainWindow::Start() - это слот, то фкнцияю соединения вынеси туда, где создаётся объект таймера. А в этом слоте только запускай таймер
Алексей1153 Дата 29.10.2010, 20:45
  QMainWindow, точно утверждать не могу, но, возможно, ты соединяешь сигнал со слотом ещё раз, следовательно таймер срабатывает с "дребезгом"

Делай контроль количества соединений. Или по кнопке "стоп" рассоединяй сигнал и слот

А ещё лучше - соединить один раз в конструкторе и больше не трогать :)
QMainWindow Дата 29.10.2010, 20:09
  Спасибо за прогу, посмотрел.
Обнаружился интересный феномен (по крайней для меня).
Вот код:
void MainWindow::Start()
{
    connect(timer, SIGNAL(timeout()), this, SLOT(NewFrame()));
    timer->start(10);
}

и слот:
void MainWindow::NewFrame()
{
    Tr.remove(1);
    Tr.append(QLineF(R1*cos(w1*t+f1), R2*sin(w2*t+f2), R1*cos(w1*(t-dt)+f1), R2*sin(w2*(t-dt)+f2)));
    t=t+dt;
    update();
}

Это кнопка Старт. Прикол в том, что если на нее нажимать много раз, не меняя какие-либо параметры на панели, то точка на экране начнет двигаться быстрее и быстрее. Как это можно объяснить?
Litkevich Yuriy Дата 29.10.2010, 9:44
  Тему разделил: О прикрепленых файлах
Алексей1153 Дата 29.10.2010, 6:47
  ха, я понял, почему не прицепился файл. Дурацкое ограничение - использовать только зип. А у меня в раре был
Алексей1153 Дата 28.10.2010, 20:44
  QMainWindow, хм, я , видать, забыл кнопочку нажать. А потом форум был в дауне.

С собой нету проекта, завтра с работы скину
QMainWindow Дата 28.10.2010, 20:39
  Спасибо, а где собственно прикрепленный архив? :) Не видно что-то...
Алексей1153 Дата 28.10.2010, 11:28
  вот, что у меня вышло. Правда, кольцевой буфер содержит сейчас QPoint, но нпеределать в QLine не сложно - когда кладёшь очередную точку добавляй линию. Это сделай сам, а мне щас работать надо ))


приращение времени я в регулируемое окошко не выводил, тоже сам делай

m_t+=3;//dt;

Алексей1153 Дата 28.10.2010, 9:35
  QMainWindow, я скачал таки. Ищу драчовый напильник, доводить до ума )))

вообще то, плоттеры обычно делают в новом классе, так ГОРАЗДО УДОБНЕЕ. Но это переделывать я не буду - сам уж сделаешь
Алексей1153 Дата 28.10.2010, 8:37
  QMainWindow, не открывается ссылка. Сделай проще - удали папки release и debug, да архивчик тут подвесь
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 5:48