<?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=454111&amp;view=findpost&amp;p=3914257</guid>
        <pubDate>Wed, 04 Dec 2024 07:50:39 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914257</link>
        <description><![CDATA[tumanovalex: Спасибо большое за код&#33; Флажки правильно опрашиваются через Layout, которые указан в поле класса. Замечание по поводу использования Layout учту. Вопрос был вызван желанием увидеть код другого решения задачи и код работы с потомками.]]></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=454111&amp;view=findpost&amp;p=3914237</guid>
        <pubDate>Wed, 04 Dec 2024 05:42:31 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914237</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=454111&amp;view=findpost&amp;p=3914234</guid>
        <pubDate>Wed, 04 Dec 2024 01:28:10 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914234</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=454111&view=findpost&p=3914225'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2024-12-03T16:02:11+00:00">03.12.24, 16:02</time></span><div class='quote '>Можно было бы определить состояние чекбоксов, исходя из их лайаута?</div></div><br>
По &quot;моему&quot; последнему варианту, ибо твой не смотрел, можно было бы примерно вот так (я не проверял):<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">for (int i = 0; i &#60; checkLayout-&#62;count(); ++i) {</div><div class="code_line">&nbsp;&nbsp;QLayoutItem *item = checkLayout-&#62;itemAt(i);</div><div class="code_line">&nbsp;&nbsp;if (item) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;QWidget *widget = item-&#62;widget();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;QCheckBox *checkBox = qobject_cast&#60;QCheckBox*&#62;(widget);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if (checkBox) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;bool isChecked = checkBox-&#62;isChecked();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;qDebug() &#60;&#60; &quot;Чекбокс &quot; &#60;&#60; i &#60;&#60; &quot; состояние: &quot; &#60;&#60; (isChecked ? &quot;включен&quot; : &quot;выключен&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Но, повторюсь - это плохая практика. Ибо, этот вариант доступа позволителен только в том методе или конструкторе, где мы этот лайяут объявили и инициализировали. Естественно, в других методах такого простого доступа не будет - этот лайаут нужно будет сперва искать по всему дереву лаяутов и контролов, начиная от лаяута самой главной формы, а там &quot;дерево&quot;.<br>
<br>
Поэтому перебор и доступ лучше осуществлять:<br>
<br>
1) Либо осуществлять по элементам вектора Checks, как я уже показывал<br>
2) Либо выносить искомый лайаут как указатель-поле класса, чтобы не искать его древовидными спусками. Это не по Бритве Оккама.]]></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=454111&amp;view=findpost&amp;p=3914225</guid>
        <pubDate>Tue, 03 Dec 2024 16:02:11 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914225</link>
        <description><![CDATA[tumanovalex: А если бы не был вектор полем класса? Можно было бы определить состояние чекбоксов, исходя из их лайаута? Я попробовал<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">QObjectList chkList = layCheck-&#62;children();</div></ol></div></div></div></div>Ошибки нет, но и не нашел возможности из chkLiist вытянуть состояние чекбоксов. Как я понял, нужно QObjectList преобразовать в QList&lt;QCheckBox&gt;, а как это сделать - не знаю.]]></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=454111&amp;view=findpost&amp;p=3914218</guid>
        <pubDate>Tue, 03 Dec 2024 13:54:12 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914218</link>
        <description><![CDATA[tumanovalex: Спасибо большое, понятно. А по поводу интерфейса проекта в <a class='tag-url' href='https://forum.sources.ru/index.php?showtopic=453076' target='_blank'>Работа с QTCreator без дизайнера</a> есть критические замечания и предложения?]]></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=454111&amp;view=findpost&amp;p=3914217</guid>
        <pubDate>Tue, 03 Dec 2024 13:43:58 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914217</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>tumanovalex</strong>, мы же ранее не зря флажки объявили полем класса в виде вектора? Чтобы легко и просто иметь к ним доступ.<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">void Dialog::SaveSettings() {</div><div class="code_line">&nbsp;&nbsp;for(const auto &amp;i:Checks) qDebug() &#60;&#60; i-&#62;text() &#60;&#60; &quot;:&quot; &#60;&#60; i-&#62;checkState() &#60;&#60; &quot; : (checked: &quot; &#60;&#60; i-&#62;isChecked() &#60;&#60; &quot;)&quot;;</div><div class="code_line">}</div></ol></div></div></div></div><br>
У QCheckBox&#39;ов вообще <a class='tag-url' href='https://doc.qt.io/qt-6/qt.html#CheckState-enum' target='_blank'>есть три состояния</a>: <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">Qt::Unchecked</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">Qt::PartiallyChecked</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">Qt::Checked</span></span>. Это мы в дебаге выводим сразу. Но обычно используют состояния 1 и 3, поэтому их можно ловить и в методе родителя. Это выводим потом. Тут на выбор, как говорится.]]></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=454111&amp;view=findpost&amp;p=3914211</guid>
        <pubDate>Tue, 03 Dec 2024 12:59:34 +0000</pubDate>
        <title>Состояние чекбоксов в Layout (QT)</title>
        <link>https://forum.sources.ru/index.php?showtopic=454111&amp;view=findpost&amp;p=3914211</link>
        <description><![CDATA[tumanovalex: Здравствуйте&#33;<br>
При нажатии кнопки &quot;Сохранить настройки&quot; хотелось бы получить состояние флажков в Layout layCheck:<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">void Dialog::SaveSettings()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;for(int i=0; i &#60; layCheck -&#62;count(); ++i)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;qDebug() &#60;&#60; layCheck-&#62;itemAt(i)-&#62;widget();</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div>Я не нашел возможности в строке с qDebug у widget() получить состояние флажка. Возможность получить координаты x и y флажка есть, в вот как получить состояние флажка? Помогите, пожалуйста, проект прикрепил.<br>
<span class="b-attach" data-size="2041" data-hits="73" data-attach-id="66585" data-attach-post-id="3914211">
			<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=3914211&amp;attach_id=66585' title='Скачать файл' target='_blank'>qtStudy.zip</a> (, : 73)
		</span>]]></description>
        <author>tumanovalex</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      </channel>
      </rss>
	