<?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=452788&amp;view=findpost&amp;p=3912718</guid>
        <pubDate>Tue, 05 Nov 2024 12:13:34 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912718</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=452788&amp;view=findpost&amp;p=3912710</guid>
        <pubDate>Tue, 05 Nov 2024 10:59:12 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912710</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912701'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2024-11-05T09:14:25+00:00">05.11.24, 09:14</time></span><div class='quote '>Взял за основу Ваш проект. Попробую поработать с элементами из него, а также включить в него свои элементы. Мне потребуется некоторое время, чтобы изучить основы размещения элекментов. Дальнейшие вопросы следует задавать в этой теме или создать новую?</div></div><br>
Я думаю оптимально будет - &quot;один вопрос=одна тема&quot;. В плане форума - это вообще must have. Меньше путаницы, больше конкретики.]]></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=452788&amp;view=findpost&amp;p=3912701</guid>
        <pubDate>Tue, 05 Nov 2024 09:14:25 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912701</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=452788&amp;view=findpost&amp;p=3912663</guid>
        <pubDate>Mon, 04 Nov 2024 13:28:33 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912663</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912662'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2024-11-04T12:52:12+00:00">04.11.24, 12:52</time></span><div class='quote '> Даже в VLC при переключении на Qt его простейший интерфейс с маленькой кучкой кнопок ведет себя криво.</div></div><br>
Еще раз повторюсь - в Qt и VLC <strong class='tag-b'>совершенно разные</strong> подходы по размещениям контролов. Их нельзя &quot;переключить&quot; просто так. Нужно перепроектировать&#33; Именно из-за твоих попыток &quot;переключить&quot; и происходят косяки&#33; Всё, ладно. Как говорят: &quot;желающий да услышит&quot;. Больше повторяться у меня нет желания.]]></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=452788&amp;view=findpost&amp;p=3912662</guid>
        <pubDate>Mon, 04 Nov 2024 12:52:12 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912662</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912661'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2024-11-04T12:46:49+00:00">04.11.24, 12:46</time></span><div class='quote '>Просто поленился изучить теорию, вот и результат. Вот поэтому я и прошу не &quot;рекламировать&quot; свой неправильный опыт и подход. </div></div><br>
Так это не мои приложения. Даже в VLC при переключении на Qt его простейший интерфейс с маленькой кучкой кнопок ведет себя криво.]]></description>
        <author>macomics</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912661</guid>
        <pubDate>Mon, 04 Nov 2024 12:46:49 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912661</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912659'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2024-11-04T10:53:16+00:00">04.11.24, 10:53</time></span><div class='quote '>Вот как раз из-за подобных косяков я и отказался от использования Qt приложений. В них постоянно такая шляпа встречалась. Возвращаться к их использованию как-то не тянет больше.</div></div><br>
Просто поленился изучить теорию, вот и результат. Вот поэтому я и прошу не &quot;рекламировать&quot; свой неправильный опыт и подход.]]></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=452788&amp;view=findpost&amp;p=3912659</guid>
        <pubDate>Mon, 04 Nov 2024 10:53:16 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912659</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912655'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2024-11-04T02:59:50+00:00">04.11.24, 02:59</time></span><div class='quote '>Это происходит только тогда, когда автор плохо читал документацию по системе размещений Qt, и не разобрался в её сути. С прямыми руками никаких вышеописанных косяков не происходит.</div></div><br>
Вот как раз из-за подобных косяков я и отказался от использования Qt приложений. В них постоянно такая шляпа встречалась. Возвращаться к их использованию как-то не тянет больше.]]></description>
        <author>macomics</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912655</guid>
        <pubDate>Mon, 04 Nov 2024 02:59:50 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912655</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912651'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2024-11-03T21:54:52+00:00">03.11.24, 21:54</time></span><div class='quote '>Вот с таким подходом на Qt интерфейс вечно ездит туда сюда и вылазит за пределы окон. Интерфейс у программы с такими ляпами выглядит куда менее профессиональным, чем если бы он был жестко прибит по координатам. Лучше пускай на координатах тренируется, а уже потом со всем остальным разбирается</div></div><br>
Это происходит только тогда, когда автор плохо читал документацию по системе размещений Qt, и не разобрался в её сути. С прямыми руками никаких вышеописанных косяков не происходит. Система размещений Qt сделана грамотно, адаптивна к размерам. Твой совет - это примерно как посоветовать веб-верстальщику не использовать flex или grid, а прибивать div&#39;ы по абсолютным координатам. Так себе совет, сам понимаешь.<br>
<br>
Позиционирование элементов по конкретным координатам - этот подход является тяжёлым наследием ;) ранних GUI систем, а-ля VCL из CBuilder/Delphi. В Qt это не так работает.]]></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=452788&amp;view=findpost&amp;p=3912651</guid>
        <pubDate>Sun, 03 Nov 2024 21:54:52 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912651</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912647'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Majestio &#064; <time class="tag-quote__quoted-time" datetime="2024-11-03T16:54:43+00:00">03.11.24, 16:54</time></span><div class='quote '>Очень-очень плохой и неграмотный совет&#33;&#33;&#33; Никаких координат. Только взаимное размещение и политики размеров и ограничений контролов. Qt, исходя из системных метрик текущей операционной системы, сам расставит и растянет управляющие элементы как надо. Если речь не идет о 2D или 3D графике - вообще забыть про какие-то там координаты&#33;&#33;&#33; Максимум что можно указывать в пикселях - это дополнительные отступы. Но и это от лукавого. Программа ДОЛЖНА СООТВЕТСТВОВАТЬ и по цветовой гамме, и по геометрии - выбранной пользователем теме оформления. Либо предлагать свои настройки. Но в виде дополнительных настроек - а не основного костыльно-забитого кода&#33; </div></div><br>
Вот с таким подходом на Qt интерфейс вечно ездит туда сюда и вылазит за пределы окон. Интерфейс у программы с такими ляпами выглядит куда менее профессиональным, чем если бы он был жестко прибит по координатам. Лучше пускай на координатах тренируется, а уже потом со всем остальным разбирается]]></description>
        <author>macomics</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912648</guid>
        <pubDate>Sun, 03 Nov 2024 17:17:54 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912648</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912644'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2024-11-03T15:01:39+00:00">03.11.24, 15:01</time></span><div class='quote '>Может быть у Вас есть тестовый проект, в котором это используется? Хотелось бы его поизучать и попытаться разобраться с достоинствами создания интерфейса без QTCreator.</div></div><br>
<br>
Далее я размещу сознательно-кривой проект. На нем можно посмотреть как создаются внешние и вложенные лайяуты и контролы. На нем же имеет смысл поразмыслить, с помощью замены какими типами лайяутов можно улучшить внешний вид.<br>
<br>
<span class="b-attach" data-size="4161" data-hits="209" data-attach-id="66455" data-attach-post-id="3912648">
			<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=3912648&amp;attach_id=66455' title='Скачать файл' target='_blank'>Screenshot_1.png</a> (, : 209)
		</span><br>
<br>
<br>
<strong class='tag-b'>TestoLayout.pro</strong><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">greaterThan(QT_MAJOR_VERSION, 4): QT += widgets</div><div class="code_line">CONFIG += c++17</div><div class="code_line">SOURCES += \</div><div class="code_line">&nbsp;&nbsp; &nbsp;main.cpp \</div><div class="code_line">&nbsp;&nbsp; &nbsp;dialog.cpp</div><div class="code_line">&nbsp;</div><div class="code_line">HEADERS += \</div><div class="code_line">&nbsp;&nbsp; &nbsp;dialog.h</div><div class="code_line">&nbsp;</div><div class="code_line"># Default rules for deployment.</div><div class="code_line">qnx: target.path = /tmp/$${TARGET}/bin</div><div class="code_line">else: unix:!android: target.path = /opt/$${TARGET}/bin</div><div class="code_line">!isEmpty(target.path): INSTALLS += target</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<strong class='tag-b'>main.cpp</strong><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">#include &quot;dialog.h&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">#include &#60;QApplication&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">int main(int argc, char *argv[])</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;QApplication a(argc, argv);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dialog w;</div><div class="code_line">&nbsp;&nbsp; &nbsp;w.show();</div><div class="code_line">&nbsp;&nbsp; &nbsp;return a.exec();</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
<strong class='tag-b'>dialog.h</strong><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">#ifndef DIALOG_H</div><div class="code_line">#define DIALOG_H</div><div class="code_line">&nbsp;</div><div class="code_line">#include &#60;QtWidgets&#62;</div><div class="code_line">&nbsp;</div><div class="code_line">// #include &#60;QDialog&#62; &nbsp; - - - &#62; чтобы не парится, сразу всё ниже заменяем на #include &#60;QtWidgets&#62;</div><div class="code_line">// #include &#60;QLineEdit&#62; - - - &#62; </div><div class="code_line">// #include &#60;QCheckBox&#62; - - - &#62; </div><div class="code_line">// #include &#60;QLabel&#62; &nbsp; &nbsp;- - - &#62; </div><div class="code_line">&nbsp;</div><div class="code_line">class Dialog : public QDialog</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;Q_OBJECT</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;QLineEdit *firstName; &nbsp; &nbsp; // явно поля объявляем тут, потом на них будем вешать сигналы-слоты</div><div class="code_line">&nbsp;&nbsp; &nbsp;QLineEdit *lastName; &nbsp; &nbsp; &nbsp;// явно поля объявляем тут, потом на них будем вешать сигналы-слоты</div><div class="code_line">&nbsp;</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dialog(QWidget *parent = nullptr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;~Dialog();</div><div class="code_line">&nbsp;&nbsp; &nbsp;void SetupWidgets();</div><div class="code_line">};</div><div class="code_line">#endif // DIALOG_H</div></ol></div></div></div></div><br>
<br>
<strong class='tag-b'>dialog.cpp</strong><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">#include &quot;dialog.h&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">Dialog::Dialog(QWidget *parent)</div><div class="code_line">&nbsp;&nbsp; &nbsp;: QDialog(parent)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;firstName = new QLineEdit(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // просто инициализируем контрол, хотя можно это сделать и в SetupWidgets</div><div class="code_line">&nbsp;&nbsp; &nbsp;lastName = new QLineEdit(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// просто инициализируем контрол, хотя можно это сделать и в SetupWidgets</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SetupWidgets(); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// инициализация контролов</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//setMinimumSize(640,480); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // можно поэксперементировать как-нибудь потом</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">Dialog::~Dialog()</div><div class="code_line">{</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void Dialog::SetupWidgets()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;QVBoxLayout *L = new QVBoxLayout(); &nbsp; &nbsp; &nbsp; &nbsp; // самый внешний лайяут - см. последнее действие в этом методе!</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;QHBoxLayout *LFirst = new QHBoxLayout(); &nbsp; &nbsp;// лайяут имени (метка+поле ввода)</div><div class="code_line">&nbsp;&nbsp; &nbsp;QHBoxLayout *LLast = new QHBoxLayout(); &nbsp; &nbsp; // лайяут фамиллии (метка+поле ввода)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;LFirst-&#62;addWidget(new QLabel(&quot;Имя:&quot;)); &nbsp; &nbsp; &nbsp;// добавляем лабел</div><div class="code_line">&nbsp;&nbsp; &nbsp;LFirst-&#62;addWidget(firstName); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // добавляем поле ввода</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;LLast-&#62;addWidget(new QLabel(&quot;Фамилия:&quot;)); &nbsp; // добавляем лабел</div><div class="code_line">&nbsp;&nbsp; &nbsp;LLast-&#62;addWidget(lastName); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // добавляем поле ввода</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;L-&#62;addLayout(LFirst); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // добавляем лаяут имени в конечный лайяут</div><div class="code_line">&nbsp;&nbsp; &nbsp;L-&#62;addLayout(LLast); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// добавляем лаяут фамилии в конечный лайяут</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;setLayout(L); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // устанавливаем конечный (внешний) лайяут для нашего окна</div><div class="code_line">}</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2024-11-03T17:29:37+00:00">03.11.24, 17:29</time></span></span><br>
Читаем доку по размещениям и выбираем кандидатов. Подсказка: очевидных на замену внешнему (*L) в данном случае - два. Но один тут чуть-чуть лучше, все же ;) Ваш выбор? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2024-11-03T17:35:42+00:00">03.11.24, 17:35</time></span></span><br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><br>
<br>
<span class='tag-size' data-value='14' style='font-size:14pt;'><strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red">  Хозяйке на заметку&#33;</span></strong></span><br>
<br>
<span class="b-attach" data-size="535948" data-hits="245" data-attach-id="66456" data-attach-post-id="3912648">
			<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=3912648&amp;attach_id=66456' title='Скачать файл' target='_blank'>Screenshot_6.png</a> (, : 245)
		</span><br>
<br>
Чтобы память &quot;не текла&quot; ...<br>
<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">addWidget</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">addLayout</span></span> для контрола(ов), конторлы, созданные в методах с помощью <strong class='tag-b'>new</strong> так и останутся висеть в памяти (да, и если при инициализации не указывать &quot;родителя&quot;)&#33; И их нужно будет удалять вручную. Но если вы вызвали <span class="tag-font" data-value="Courier" style="font-family:Courier"><span class="tag-color tag-color-named" data-value="blue" style="color: blue">addWidget</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">addLayout</span></span>, за этот элемент не беспокойтесь. Когда будет нужно - его удалит &quot;родитель&quot;.</div></div>]]></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=452788&amp;view=findpost&amp;p=3912647</guid>
        <pubDate>Sun, 03 Nov 2024 16:54:43 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912647</link>
        <description><![CDATA[Majestio: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912646'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>macomics &#064; <time class="tag-quote__quoted-time" datetime="2024-11-03T15:24:33+00:00">03.11.24, 15:24</time></span><div class='quote '>На первых порах можете моделировать формы визуально, а потом из графического редактора переносить координаты в свой проект</div></div><br>
Очень-очень плохой и неграмотный совет&#33;&#33;&#33; Никаких координат. Только взаимное размещение и политики размеров и ограничений контролов. Qt, исходя из системных метрик текущей операционной системы, сам расставит и растянет управляющие элементы как надо. Если речь не идет о 2D или 3D графике - вообще забыть про какие-то там координаты&#33;&#33;&#33; Максимум что можно указывать в пикселях - это дополнительные отступы. Но и это от лукавого. Программа ДОЛЖНА СООТВЕТСТВОВАТЬ и по цветовой гамме, и по геометрии - выбранной пользователем теме оформления. Либо предлагать свои настройки. Но в виде дополнительных настроек - а не основного костыльно-забитого кода&#33;]]></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=452788&amp;view=findpost&amp;p=3912646</guid>
        <pubDate>Sun, 03 Nov 2024 15:24:33 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912646</link>
        <description><![CDATA[macomics: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=452788&view=findpost&p=3912644'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>tumanovalex &#064; <time class="tag-quote__quoted-time" datetime="2024-11-03T15:01:39+00:00">03.11.24, 15:01</time></span><div class='quote '>Спасибо за ответ. Самый сложный для меня - пункт 1. Как-то плохо представляю программное размещение элементов без QTCreator. Может быть у Вас есть тестовый проект, в котором это используется? Хотелось бы его поизучать и попытаться разобраться с достоинствами создания интерфейса без QTCreator. </div></div><br>
На первых порах можете моделировать формы визуально, а потом из графического редактора переносить координаты в свой проект]]></description>
        <author>macomics</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912644</guid>
        <pubDate>Sun, 03 Nov 2024 15:01:39 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912644</link>
        <description><![CDATA[tumanovalex: Спасибо за ответ. Самый сложный для меня - пункт 1. Как-то плохо представляю программное размещение элементов без QTCreator. Может быть у Вас есть тестовый проект, в котором это используется? Хотелось бы его поизучать и попытаться разобраться с достоинствами создания интерфейса без QTCreator.]]></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=452788&amp;view=findpost&amp;p=3912639</guid>
        <pubDate>Sun, 03 Nov 2024 06:47:42 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912639</link>
        <description><![CDATA[Majestio: <strong class='tag-b'>tumanovalex</strong>, как говорится &quot;на вкус и цвет - фломастеры разные&quot; :lol: Попробую тебе выкатить своих личных, считай, аксиом. Все это  бережно запомнено на основе собственных проб и ошибок.<br>
<br>
<strong class='tag-b'><span class='tag-size' data-value='14' style='font-size:14pt;'>1. Забудь дизайнер QtCreator&#39;а</span></strong><br>
<br>
Постарайся забыть его очень надежно и не вспоминать. Начинающим кажется, мол вот оно - накликаю &quot;контролов&quot; и сразу стану счастливее в плане экономии времени. Но это не так сто раз. Во первых, чаще не удобно помнить все лайяуты, особенно если есть несколько вложений. Сложно помнить всех их поведения (надо лазить в свойства и выяснять). И наверное самое неприятное - то, что часть того, что должно быть в коде (а именно сами указатели на контролы) спрятаны в UI, вместо наглядной прописки в приватной части класса/классов. Я понимаю, что мой совет скорее всего воспримется сразу в штыки. Мол как-так такой вижуал тулз и в помойку&#33; За всеми этими манипуляциями идет лавинообразное усложнение последующих настроек правильного размещения и поведения. Их же потом нужно будет еще в логику сигналами-слотами обвязывать. Поэтому однозначно - все UI-дизайнерство QtCreator&#39;а нафик&#33;<br>
<br>
<strong class='tag-b'><span class='tag-size' data-value='14' style='font-size:14pt;'>2. Свойства виджетов</span></strong><br>
<br>
У виджетов, в том числе и контролов, кои ими и являются - нет собственных <strong class='tag-b'>предустановленных</strong> размеров. Но у них есть:<br>
1) Способность сжиматься до пикселя<br>
2) Способность растягиваться до максимально допустимых размеров, которые позволяет родительский лайяут<br>
3) Способность корректировать свое поведение политиками размеров и ограничителями.<br>
Что касается последнего пункта. Запомни два полезных сеттера, которые иногда желательно использовать, иногда - это когда уместно. Часто предустановленное поведение менять не имеет смысла. Речь об этом, пример:<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">lineEdit-&#62;setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);</div><div class="code_line">lineEdit-&#62;setMinimumSize(50,200);</div></ol></div></div></div></div><br>
Это же касается и главного окна программы. Его также можно настроить так, чтобы задать ему минимально допустимые размеры. Тоже касается и максимально допустимых, это тоже есть, если это нужно.<br>
<br>
<strong class='tag-b'><span class='tag-size' data-value='14' style='font-size:14pt;'>3. Размещение и настройка геометрии виджетов</span></strong><br>
<br>
Самый простой способ - программно накидать нужный интерфейс, а потом за пару-тройку итераций подобрать минимально допустимые размеры и задать их также программно. См. методы выше. Есть еще один солюшен, если форма содержит чрезвычайно много настроек, и нет возможности их разнести на табы, или разнести в виде дерева пунктов и панели настроек этих пунктов. Для этого можно в качестве базового виджета использовать скроллируемую область <a class='tag-url' href='https://doc.qt.io/qt-6/qscrollarea.html' target='_blank'>QScrollArea</a>. Но лучше это использовать как &quot;спасательный круг&quot;, а не повседневно. При терпении любой интерфейс можно раскидать и упорядочить достаточно наглядно и компактно. Да, иногда можно и попытаться вычислять и настраивать ограничители размеров не статически, а динамически при выполнении программы. Для этого нужно будет уметь получать системные метрики операционной системы и работать с ними (размеры символов шрифтов, размеры скроллов &amp; etc). Но это учат уже в следующем классе ;) <br>
<br>
<strong class='tag-b'><span class='tag-size' data-value='14' style='font-size:14pt;'>4. Стилизация</span></strong><br>
<br>
Во фэймворке Qt используется урезанная версия CSS. По вопросу утолщения обводки groupBox ... Это возможно решить примерно вот так:<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">QGroupBox *groupBox = new QGroupBox(&quot;Заголовок&quot;);</div><div class="code_line">groupBox-&#62;setStyleSheet(&quot;QGroupBox { border: 2px solid gray; }&quot;);</div></ol></div></div></div></div><br>
И опять же совет - так не делать. Пользователь этого не ожидает. Он привык к выбранной им теме оформления&#33; Он её желает, а ты его толсто троллишь :lol: Так что, или дать ему настраивать, или не делать такое вообще.<br>
<br>
<strong class='tag-b'><span class='tag-size' data-value='14' style='font-size:14pt;'>5. Выбор типов лайяутов</span></strong><br>
<br>
Тут однозначного ответа нет. Но есть стратегия - Бритва Оккама. Делай как получается проще. А вариантов бывает, как правило, несколько. Запомни, иногда проще использовать в качестве вложенного элемента лайяута - вложенный лайяут со своими элементами, чем громоздить какой-нибудь <strong class='tag-b'>QGridLayout</strong>, а потом пытаться отстроить поведение его отдельных элементов. Уверен, как только ты откажешься от UI-дизайнера и внимательно начитаешься <a class='tag-url' href='https://doc.qt.io/qt-6/layout.html' 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=452788&amp;view=findpost&amp;p=3912591</guid>
        <pubDate>Fri, 01 Nov 2024 18:55:58 +0000</pubDate>
        <title>Работа с QTCreator начинающего</title>
        <link>https://forum.sources.ru/index.php?showtopic=452788&amp;view=findpost&amp;p=3912591</link>
        <description><![CDATA[tumanovalex: Здравствуйте&#33;<br>
Начинаю осваивать QT (Windows, Msys2). Чтобы это делать на конкретном примере, решил перевести на QT свой проект на C# по работе с АЦП. Начал с создания контролов на форме. Возникли следующие вопросы:<br>
1. При запуске программы при изменении размера формы с помощью правого нижнего угла размер можно сделать гораздо меньше используемого мной tabWidget. Как сделать так, чтобы размеры формы можно было изменить только так, чтобы они не были меньше пространства, занимаемого на форме контролами?<br>
2. Как у groupBox сделать более толстыми ограничивающие его линии? А то по умолчанию они очень тонкие и их плохо видно.<br>
3. Я выбрал для формы formLayout. Может опытные пользователи подкажут, какие лайоуты лучше выбирать для формы с многими контролами?<br>
Проект прикрепил.<br>
<span class="b-attach" data-size="3070" data-hits="73" data-attach-id="66447" data-attach-post-id="3912591">
			<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=3912591&amp;attach_id=66447' title='Скачать файл' target='_blank'>qtCreator.zip</a> (, : 73)
		</span>]]></description>
        <author>tumanovalex</author>
        <category>Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets</category>
      </item>
	
      </channel>
      </rss>
	