<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3918007</guid>
        <pubDate>Thu, 20 Feb 2025 04:56:44 +0000</pubDate>
        <title>Создание динамического графика с автонастройкой</title>
        <link>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3918007</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457024&view=findpost&p=3917999'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-19T23:22:11+03:00">19.02.25, 20:22</time></span><div class='quote '>Наверное, для этого нужно использовать потоки. С потоками я еще не работал. Буду разбираться.</div></div><br>
Ну да, конечно&#33; Обычно в основном потоке (GUI-потоке) тяжёлые и/или ожидающие вычисления не делаются. Тебе нужно запустить поток, который будет получать данные из-вне, а по факту получения эмитировать сигнал. GUI-поток, по факту получения сигнала будет перерисовывать везде всё что нужно.]]></description>
        <author>Majestio</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917999</guid>
        <pubDate>Wed, 19 Feb 2025 20:22:11 +0000</pubDate>
        <title>Создание динамического графика с автонастройкой</title>
        <link>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917999</link>
        <description><![CDATA[tumanovalex: Спасибо за ответ. Но мне кажется, что мой вопрос - не очень узко специализированный. Вопрос в том, как при наличии нескольких вкладок на одной из них выводить график с данными, которые поступают от одной из систем ПК (например, аудио, видео) или внешних датчиков, и при этом иметь возможность переключаться между вкладками. Наверное, для этого нужно использовать потоки. С потоками я еще не работал. Буду разбираться.]]></description>
        <author>tumanovalex</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917738</guid>
        <pubDate>Sat, 15 Feb 2025 18:30:30 +0000</pubDate>
        <title>Создание динамического графика с автонастройкой</title>
        <link>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917738</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>tumanovalex</strong>, у тебя несколько &quot;узкоспециализированные&quot; вопросы. Не уверен, что кто-то захочет погружаться в твои проблемы на достаточном тебе уровне. И, тем не менее, на часть вопросов в некотором &quot;общем смысле&quot; я постараюсь ответить.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457024&view=findpost&p=3917726'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-14T13:47:41+00:00">14.02.25, 13:47</time></span><div class='quote '>- динамично добавлялись данные на график;</div></div><br>
Сразу вспоминаем основную фишку взаимодействия компонентов при использовании Qt - это &quot;сигналы/слоты&quot;. Это с одной стороны. А вот с другой - вспоминаем что фрэймворк Qt реализует парадигму &quot;<a class='tag-url' href='https://majestio.info/notes/programming/cpp/qt/about-mvc.html' target='_blank'>MVC</a>&quot;. А это значит, что мы должны &quot;разбросать&quot; определённые действия на разные компоненты создаваемой системы. Упрощённый пример:<br>
<br>
1) Компонент1 твоей системы собирает с датчиков параметры и заносит их в твою Модель1<br>
2) Модель1 по факту своего обновления эмитирует Сингал1<br>
3) Любые вьюхи (таблицы, графики, просто индикаторы), которые &quot;подписаны&quot; на Сигнал1, по факту получения сигнала - заново выбирают данные из Модели1 и их перерисовывают<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457024&view=findpost&p=3917726'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-14T13:47:41+00:00">14.02.25, 13:47</time></span><div class='quote '>- была возможность просмотра графиков (возможность переключения на вкладку Графики) сразу после нажатия на кнопку Старт;</div></div><br>
Не понятен вопрос. Но это похоже на &quot;обновить-данные + перерисовать&quot;. Также реализуется выбросом сигнала.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457024&view=findpost&p=3917726'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-14T13:47:41+00:00">14.02.25, 13:47</time></span><div class='quote '>- динамически изменялись максимальные и минимальные значения по оси Y и максимальное значение по оси X.</div></div><br>
Тут скорее не алгоритмический вопрос, сколько просто &quot;математический&quot;. Решается введением дополнительного первого запроса - который получает минимальные и максимальные значения по всей доступной выборке. Потом добавляем +10% к этим значениям чисто для красоты, ну а выводимые данные, понятное  дело, уже как-то масштабируются к определённым координатам и их масштабированию.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457024&view=findpost&p=3917726'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-14T13:47:41+00:00">14.02.25, 13:47</time></span><div class='quote '>Кроме того, хотелось бы также узнать, можно ли указать параметр для Operation в строке</div></div><br>
Вообще такое делать не рекомендуется. Но если очень хочется, то можно замутить что-то типа &quot;proxy&quot; передачи сигнала. Т.е. на первом шаге мы делаем коннект на <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">&amp;MainWindow::Operation1</span></span>, а уже в нём мы генерируем сигнал с параметром, и плюс к нему делаем ещё одну связку сигнала с параметром и слота с параметром. Повторюсь - такое я считаю костылём. Надо переосмыслить взаимодействие компонентов еще более внимательно.]]></description>
        <author>Majestio</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917726</guid>
        <pubDate>Fri, 14 Feb 2025 13:47:41 +0000</pubDate>
        <title>Создание динамического графика с автонастройкой</title>
        <link>https://forum.sources.ru/index.php?showtopic=457024&amp;view=findpost&amp;p=3917726</link>
        <description><![CDATA[tumanovalex: Здравствуйте&#33;<br>
Мне хотелось бы перевести программу на C# (получение данных с АЦП, демо-программу Adc_demo.zip прикрепил, недостатков в ней много, но работает) на QT. В программе выводятся через заданные промежутки времени показания датчиков, подключенных к АЦП. Сделал тестовый проект на QT. В тестовом проекте на QT график рисуется статично, причем если задать много точек, то программа зависает и переключение на график после нажатия кнопки Старт происходит только после большого промежутка времени. Подскажите, пожалуйста, как сделать так, чтобы в программе на QT также, как и в программе на C#:<br>
- динамично добавлялись данные на график;<br>
- была возможность просмотра графиков (возможность переключения на вкладку Графики) сразу после нажатия на кнопку Старт;<br>
- динамически изменялись максимальные и минимальные значения по оси Y и максимальное значение по оси X.<br>
Кроме того, хотелось бы также узнать, можно ли указать параметр для Operation в строке<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">connect(btnStart, &amp;QPushButton::clicked, this, &amp;MainWindow::Operation)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>. Для строки<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">connect(btnStart, &amp;QPushButton::clicked, this, &amp;MainWindow::Operation(flagMode::start))</div></ol></div></div></div></div>получаю сообщение, что для левостроннего значению нужно использовать &amp;. Пытался исправить ошибку - не получилось. Тестовый проект на QT qtCharts.zip прикрепил.<br>
<span class="b-attach" data-size="15783" data-hits="91" data-attach-id="66808" data-attach-post-id="3917726">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3917726&amp;attach_id=66808' title='Скачать файл' target='_blank'>ADC_Demo.zip</a> (, : 91)
		</span><br>
<span class="b-attach" data-size="3325" data-hits="62" data-attach-id="66809" data-attach-post-id="3917726">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3917726&amp;attach_id=66809' title='Скачать файл' target='_blank'>qtCharts.zip</a> (, : 62)
		</span>]]></description>
        <author>tumanovalex</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      </channel>
      </rss>
	