<?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=457313&amp;view=findpost&amp;p=3918176</guid>
        <pubDate>Sun, 23 Feb 2025 13:09:00 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918176</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457313&view=findpost&p=3918173'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-23T12:17:41+03:00">23.02.25, 09:17</time></span><div class='quote '>Правильно я понимаю, что при новом синтаксисе не нужно использовать emit? Я его убрал из кода и все нормально работает. А когда его нужно использовать (без него не обойтись даже в случае нового синтаксиста)?</div></div><br>
<span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">emit</span></span> нужен для посылки сигнала, так что это по прежнему нужно. Другой вопрос, если сигнал не соединен со слотом с помощью <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">connect</span></span> - слот не отработает.<br>
Лучше почитай что-то <a class='tag-url' href='https://habr.com/ru/articles/50812/' target='_blank'>типа этого</a>.]]></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=457313&amp;view=findpost&amp;p=3918173</guid>
        <pubDate>Sun, 23 Feb 2025 09:17:41 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918173</link>
        <description><![CDATA[tumanovalex: Правильно я понимаю, что при новом синтаксисе не нужно использовать emit? Я его убрал из кода и все нормально работает. А когда его нужно использовать (без него не обойтись даже в случае нового синтаксиста)?]]></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=457313&amp;view=findpost&amp;p=3918102</guid>
        <pubDate>Thu, 20 Feb 2025 18:18:11 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918102</link>
        <description><![CDATA[tumanovalex: Спасибо за пояснения&#33;]]></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=457313&amp;view=findpost&amp;p=3918100</guid>
        <pubDate>Thu, 20 Feb 2025 17:48:04 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918100</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457313&view=findpost&p=3918087'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-20T14:16:41+00:00">20.02.25, 14:16</time></span><div class='quote '>Правильно я понимаю, что стандартные методы виджетов указываются в connect без указания класса, т.е. без QLabel::, если подключен QtWidgets?</div></div><br>
Те варианты <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">connect</span></span>, которые приведены в примере - это устаревшие способы. На сегодняшний день используется новый (современный) синтаксис. Смотри примеры, как нужно писать сегодня:<br>
<br>
<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">// было</div><div class="code_line">QObject::connect(&amp;cmd, SIGNAL(clicked()), &amp;counter, SLOT(slotInc()));</div><div class="code_line">// нужно писать</div><div class="code_line">QObject::connect(&amp;cmd, &amp;QPushButton::clicked, &amp;counter, &amp;Counter::slotInc);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<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">// было</div><div class="code_line">QObject::connect(&amp;counter, SIGNAL(counterChanged(int)),&amp;lbl, SLOT(setNum(int)));</div><div class="code_line">// нужно писать</div><div class="code_line">QObject::connect(&amp;counter, &amp;Counter::counterChanged, &amp;lbl, static_cast&#60;void (QLabel::*)(int)&#62;(&amp;QLabel::setNum));</div></ol></div></div></div></div><br>
<br>
<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">// было</div><div class="code_line">QObject::connect(&amp;counter, SIGNAL(goodbye()), &amp;app, SLOT(quit()));</div><div class="code_line">// нужно писать</div><div class="code_line">QObject::connect(&amp;counter, &amp;Counter::goodbye, &amp;app, &amp;QApplication::quit);</div></ol></div></div></div></div><br>
Как видно, в новом синтаксисе мы и сигналы, и слоты однозначно квалифицируем названиями классов. Это гораздо удобнее и читабельнее. Но есть и нюанс ... Посмотри второй пример. Поскольку у класса <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">QLabel</span></span> два одноимённых слота с разными сигнатурами <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">void setNum(int num)</span></span> и <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">void setNum(double num)</span></span>, то компилятор тупит и выбрасывает ошибку, если не использовать <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">static_cast</span></span>, как я указал в примере. Но такое бывает очень редко, поэтому новый синтаксис <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">connect</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=457313&amp;view=findpost&amp;p=3918087</guid>
        <pubDate>Thu, 20 Feb 2025 14:16:41 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918087</link>
        <description><![CDATA[tumanovalex: Правильно я понимаю, что стандартные методы виджетов указываются в connect без указания класса, т.е. без QLabel::, если подключен QtWidgets?]]></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=457313&amp;view=findpost&amp;p=3918085</guid>
        <pubDate>Thu, 20 Feb 2025 14:03:07 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918085</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=457313&view=findpost&p=3918084'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2025-02-20T13:30:37+00:00">20.02.25, 13:30</time></span><div class='quote '>В примере к второй главе не понял, где определена функция setNum(), используемая в строке</div></div><br>
<a class='tag-url' href='https://doc.qt.io/qt-6/qlabel.html#setNum' target='_blank'>Определена тут</a>.]]></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=457313&amp;view=findpost&amp;p=3918084</guid>
        <pubDate>Thu, 20 Feb 2025 13:30:37 +0000</pubDate>
        <title>Примеры из книги Шлее</title>
        <link>https://forum.sources.ru/index.php?showtopic=457313&amp;view=findpost&amp;p=3918084</link>
        <description><![CDATA[tumanovalex: Здравствуйте&#33;<br>
Для лучшего понимания взаимодействия сигнал-слот решил проработать примеры из книги Шлее М. &quot;QT 5.10...&quot;. В примере к второй главе не понял, где определена функция setNum(), используемая в строке<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">QObject::connect(&amp;counter, SIGNAL(counterChanged(int)), &amp;lbl, SLOT(setNum(int)));</div></ol></div></div></div></div>Помогите, пожалуйста, разобраться. Проект из книги прикрепил.<br>
<span class="b-attach" data-size="1879" data-hits="62" data-attach-id="66843" data-attach-post-id="3918084">
			<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=3918084&amp;attach_id=66843' title='Скачать файл' target='_blank'>ch02_Counter.zip</a> (, : 62)
		</span>]]></description>
        <author>tumanovalex</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      </channel>
      </rss>
	