<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Каталог статей</title>
		<link>https://qt.ucoz.net/publ/</link>
		<description>Каталог статей</description>
		<lastBuildDate>Fri, 24 Dec 2010 07:45:57 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://qt.ucoz.net/publ/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>QFileSystemWatcher следим за директориями и файлами</title>
			<description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(54, 53, 52); font-family: Verdana; font-size: 13px; line-height: 15px;&quot;&gt;Класс &lt;b&gt;QFileSystemWatcher&lt;/b&gt; предназначет за отслеживанием изменений в файлах и директориях. &lt;br&gt;&lt;br&gt;Например:&lt;br&gt;&lt;br&gt;Устанавливаем слежку за каким то файлом, передавая классу полный путь к &lt;br&gt;файлу. Как только файл будет переименован, изменен или удален с жесткого диска.&lt;br&gt;&lt;br&gt;Простой пример применения:&lt;br&gt;&lt;br&gt;В заголовчном файле определяем наследника класса: &lt;br&gt;&lt;b&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QFileSystemWatcher *fsWatcher;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Далле создаем тут же приватный слот, который будет срабатывать когда испустится сигнал объектом &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(54, 53, 52); font-family: Verdana; font-size: 13px; line-height: 15px;&quot;&gt;&lt;b&gt;fsWatcher&lt;/b&gt; и на экран выведется сообщение о том, что файл изменен&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(54, 53, 52); font-family: Verdana; font-size: 13px; line-height: 15px;&quot;&gt;&lt;b&gt;private slots:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; void changed(const QString &amp;amp; flName);&lt;br&gt;&lt;br&gt;&lt;/b&gt;Далее в файле исходников в конструкторе класса пишем следующее:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Создаем наследника&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsWatcher = new QFileSystemWatcher(this);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/b&gt;устанавливаем слежку на файл&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsWatcher-&amp;gt;addPath(&quot;/home/alexandr/test.txt&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/b&gt;Связываем сигнал со слотом, как только файл будет изменен&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //произойдет вызов слота &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(54, 53, 52); font-family: Verdana; font-size: 13px; line-height: 15px;&quot;&gt;&lt;i&gt;c&lt;/i&gt;&lt;i&gt;hanged(QString)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(54, 53, 52); font-family: Verdana; font-size: 13px; line-height: 15px;&quot;&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(fsWatcher, SIGNAL(fileChanged(QString)), this,&amp;nbsp;&amp;nbsp;&amp;nbsp; SLOT(changed(QString)));&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Описываем наш слот&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; void MainWindow::changed(const QString &amp;amp;flName)&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/b&gt;В QLabel будет выведено сообщение&lt;br&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ui-&amp;gt;label-&amp;gt;setText(&quot;Changed &quot; + flName);&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;</description>
			
			<link>https://qt.ucoz.net/publ/qfilesystemwatcher_sledim_za_direktorijami_i_fajlami/1-1-0-19</link>
			<category>Мои статьи</category><dc:creator>Александр</dc:creator>
			<guid>https://qt.ucoz.net/publ/qfilesystemwatcher_sledim_za_direktorijami_i_fajlami/1-1-0-19</guid>
			<pubDate>Fri, 24 Dec 2010 07:45:57 GMT</pubDate>
		</item>
		<item>
			<title>QSignalMapper - как пользоваться</title>
			<description>Допустим у нас приложение &quot;Калькулятор&quot;. Имеется 9 кнопок с цифрами дабы не связывать каждое нажатие отдельной кнопочки с одним и тем же слотом обрабатывающим вывод цифры на табло и не плодить код, есть прекрасный класс в Qt&amp;nbsp; - QSignalMapper&lt;br&gt;&lt;br&gt;Простой пример:&lt;br&gt;&lt;br&gt;В заголовочном файле декларируем:&lt;br&gt;&lt;br&gt;&amp;nbsp; QSignalMapper *signalMapper;&lt;br&gt;&lt;br&gt;И тут же создаем приватный слот:&lt;br&gt;&lt;br&gt;&amp;nbsp; void clicked(const QString &amp;amp; text);&lt;br&gt;&lt;br&gt;Который будет выводить сообщение с текстом нажатой кнопочки&lt;br&gt;&lt;br&gt;Далее в конструкторе класса создаем объект класса QSignalMapper&lt;br&gt;&lt;br&gt;&amp;nbsp; signalMapper = new QSignalMapper(this);&lt;br&gt;&lt;br&gt;Далее добавляем в QGridLayout yнаши 9 кнопочек:&lt;br&gt;&lt;br&gt;&amp;nbsp;for (int i = 0; i &lt; 9; ++i)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Кнопочка с текстом текущей итерации цикла&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QPushButton *button = new QPushButton(QString::number(i));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //При нажатии на данную кнопочку вызывам слот класса QSignalMapper&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Привязывем кнопочку к маперу с текстом текущей итерации&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; signalMapper-&amp;gt;setMapping(button, QString::number(i));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //ну и добавляем кнопочку в Layout &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ui-&amp;gt;gridLayout-&amp;gt;addWidget(button, i / 3, i % 3);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Теперь когда маппер испуска сигнал о нажатии определенной кнопочки вызывается наш слот&lt;br&gt;&amp;nbsp;&amp;nbsp; //и в него передается значение привязанное в мапер для данной кнопочки &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(signalMapper, SIGNAL(mapped(const QString &amp;amp;)),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this, SLOT(clicked(const QString &amp;amp;)));&lt;br&gt;&lt;br&gt;&lt;br&gt;//А вот и сам наш слот&lt;br&gt;&lt;br&gt;void MainWindow::clicked(const QString &amp;amp; text)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QMessageBox::information(this, &quot;TEST&quot;, text, QMessageBox::Ok);&lt;br&gt;}&lt;br&gt;&lt;br&gt;</description>
			
			<link>https://qt.ucoz.net/publ/qsignalmapper_kak_polzovatsja/1-1-0-18</link>
			<category>Мои статьи</category><dc:creator>Александр</dc:creator>
			<guid>https://qt.ucoz.net/publ/qsignalmapper_kak_polzovatsja/1-1-0-18</guid>
			<pubDate>Thu, 23 Dec 2010 11:43:45 GMT</pubDate>
		</item>
		<item>
			<title>Примеры использования класса QEvent</title>
			<description>Данное приложение иллюстрирует использования различных подклассов QEvent. В примере использованы реализации следующих классов:&lt;br&gt;&lt;br&gt;&amp;nbsp;&lt;QCloseEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QContextMenuEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QFocusEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QHideEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QKeyEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QMouseEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QPaintEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QResizeEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QShowEvent&amp;gt;&lt;br&gt;&amp;nbsp;&lt;QWheelEvent&amp;gt;</description>
			
			<link>https://qt.ucoz.net/publ/primery_ispolzovanija_klassa_qevent/1-1-0-17</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/primery_ispolzovanija_klassa_qevent/1-1-0-17</guid>
			<pubDate>Sun, 22 Aug 2010 12:08:23 GMT</pubDate>
		</item>
		<item>
			<title>Стандартные алгоритмы для работы с STL (algorithm)</title>
			<description>&lt;p&gt;В C++ существует множество спецальных алгоритмов для работы с 
массивами. Они позволяют сортировать данные в массиве, искать в нем 
какое-либо значение, менять элементы местами и т.д. Для их работы вам 
необходимо подкючить &lt;algorithm&amp;gt; в начале программы.&lt;/p&gt;

&lt;p&gt;&lt;span id=&quot;more-369&quot;&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h3 style=&quot;text-align: center;&quot;&gt;Алгоритмы поиска.&lt;/h3&gt;

&lt;p&gt;Все алгоритмы поиска возвращают итератор на элемент, а не сам элемент.&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;find(begin,end,what) - ищет первый элемент со значенимем what в 
промежутке begin - end, где begin и end - итераторы соответствующего 
контейнера&lt;/li&gt;&lt;li&gt;adjacent_find(start,end) - ищет два последовательных совпадающих элемента между start и end и возвращает итератор на него&lt;/li&gt;&lt;li&gt;search(start,end,sbegin,send) - ищет между start и end последовательность sbegin-send&lt;/li&gt;&lt;/ul&gt;</description>
			
			<link>https://qt.ucoz.net/publ/standartnye_algoritmy_dlja_raboty_s_stl_algorithm/1-1-0-16</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/standartnye_algoritmy_dlja_raboty_s_stl_algorithm/1-1-0-16</guid>
			<pubDate>Sun, 22 Aug 2010 06:52:00 GMT</pubDate>
		</item>
		<item>
			<title>Singleton для Qt</title>
			<description>&lt;p&gt;Иногда при разработке приложений возникает потребность в 
существовании некоего объекта, который должен быть доступен из многих, 
совершенно разных частей программы. Примером такого объекта может 
служить общий контейнер внутренней конфигурации программы. Кроме того, 
ключевой особенностью такого объекта является единственность его 
существования – к примеру, объект, работающий с определенным COM портом 
должен существовать в единственном экземпляре.&lt;/p&gt;

&lt;p&gt;Таким образом, мы можем выделить две особенности объекта типа &lt;strong&gt;Singleton&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Доступность объекта из различных частей программы&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Единственность существования&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Специально выделяю вторую особенность, дабы подчеркнуть суть такого 
объекта. Первая особенность – просто «полезность», вытекающая из 
единственности. На практике, эти две особенности идут рядом, поэтому я 
не буду разделять их детали реализации.&lt;/p&gt;

&lt;p&gt;Да, вопрос об обоснованности существования таких объектов и т.п. – 
это совсем другая тема и философия проектирования. Но мы сейчас не об 
этом.&lt;/p&gt;

&lt;p&gt;Существует несколько подходов к реализации таких объектов. Я 
предлагаю один из них, которым пользуюсь уже на протяжении многих лет.&lt;/p&gt;&lt;br&gt;</description>
			
			<link>https://qt.ucoz.net/publ/singleton_dlja_qt/1-1-0-15</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/singleton_dlja_qt/1-1-0-15</guid>
			<pubDate>Thu, 12 Aug 2010 05:30:44 GMT</pubDate>
		</item>
		<item>
			<title>Видео</title>
			<description>&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/9E2KOphwZMg&amp;amp;hl=ru_RU&amp;amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/9E2KOphwZMg&amp;amp;hl=ru_RU&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</description>
			
			<link>https://qt.ucoz.net/publ/video/1-1-0-14</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/video/1-1-0-14</guid>
			<pubDate>Mon, 09 Aug 2010 17:30:59 GMT</pubDate>
		</item>
		<item>
			<title>Указание кодировки строк в исходном коде</title>
			<description>По умолчанию аргументы функции &lt;tt&gt;tr()&lt;/tt&gt; воспринимаются в кодировке Latin-1. Для переопределения этого необходимо воспользоваться классом &lt;tt&gt;QTextCodec&lt;/tt&gt;, а именно статической функцией &lt;tt&gt;QTextCodec::setCodecForTr()&lt;/tt&gt;.&lt;br&gt;
Так как вызов функции &lt;tt&gt;QTextCodec::setCodecForTr()&lt;/tt&gt; должен быть сделан до первого вызова &lt;tt&gt;tr()&lt;/tt&gt;, то удобнее всего это реализовать сразу после создания объекта &lt;tt&gt;QApplication&lt;/tt&gt;:</description>
			
			<link>https://qt.ucoz.net/publ/ukazanie_kodirovki_strok_v_iskhodnom_kode/1-1-0-13</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/ukazanie_kodirovki_strok_v_iskhodnom_kode/1-1-0-13</guid>
			<pubDate>Mon, 09 Aug 2010 17:28:31 GMT</pubDate>
		</item>
		<item>
			<title>Сохранение отзывчивости графического интерфейса при выполнении длительных операций</title>
			<description>Длительные операции в программе можно разделить на две категории. Первая
 — интенсивные вычислительные задачи, такие как: алгоритмы обработки 
аудио и видео данных, моделирование. Вторая — взаимодействие с 
медленными объектами «внешнего мира» программы(управление различным 
промышленным оборудованием, загрузка файлов по сети и проч.). Для второй
 категории задач проблема сохранения отзывчивости решается в Qt 
использованием асинхронных классов, т.е. классов, методы которых сразу 
после вызова возвращают управление, а о результате своей деятельности 
они оповещают соответствующим сигналом. Примером таких классов могут 
служить классы &lt;tt&gt;QFtp&lt;/tt&gt; и &lt;tt&gt;QHttp&lt;/tt&gt;.&lt;br&gt;
В случае интенсивных вычислений (в не зависимости от использования 
механизма сигнал-слот) обработка событий прерывается, сетевое 
взаимодействие останавливается, таймеры замирают, программа не 
перерисовывается и перестает отвечать на ввод пользователя. Иными 
словами до окончания вычислений программа выглядит зависшей. Сохранить 
отзывчивость программы можно либо периодической обработкой ожидающих в 
очереди событий и тогда необходимые вычисления можно оставить в главном 
потоке, либо созданием дополнительного потока и переносом вычислительных
 алгоритмов в него. Создание многопоточных приложений требует высокой 
квалификации от программиста и несколько усложняет код. Для тех, кого не
 пугает усложнение исходного кода считаю необходимым напомнить первый 
закон творческого программирования: «Caveat emptor: стоимость 
сопровождения программного обеспечения пропорциональна квадрату 
творческих способностей программиста». Выбор пути решения зависит от 
задачи. Практически любую вычислительную задачу можно разбить на 
несколько подзадач, на несколько частей. Если эти части могут быть 
решены только последовательно, то велика вероятность того, что 
оптимальным вариантом будут вычисления в главном потоке. Ежели отдельные
 части независимы и могут вычисляться параллельно, то использование 
нескольких потоков может дать значительный прирост производительности.&lt;br&gt;
Самое простое решение заключается в периодическом вызове &lt;tt&gt;QCoreApplication::processEvents()&lt;/tt&gt;
 в коде вычислений. Эта функция обрабатывает ожидающие в очереди 
события. В случае, если действия пользователя нежелательны во время 
выполнения задачи можно отключить обработку событий мыши и клавиатуры 
заменив вызов &lt;tt&gt;QCoreApplication::processEvents()&lt;/tt&gt; на &lt;tt&gt;QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents)&lt;/tt&gt;. С помощью &lt;tt&gt;QCoreApplication::processEvents()&lt;/tt&gt;
 также можно «синхронизировать» асинхронные методы. Допустим у нас есть 
класс для общения с неким устройством. Ему можно послать команду с 
помощью метода &lt;tt&gt;send(QByteArray array)&lt;/tt&gt; и получить ответ в слот &lt;tt&gt;data(QByteArray array)&lt;/tt&gt;
 в течение некоторого времени. На случай отсутствия ответа предусмотрим 
таймаут. Если ответ не придет в течение 5 секунд, то ожидание мы 
прекращаем.</description>
			
			<link>https://qt.ucoz.net/publ/sokhranenie_otzyvchivosti_graficheskogo_interfejsa_pri_vypolnenii_dlitelnykh_operacij/1-1-0-12</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/sokhranenie_otzyvchivosti_graficheskogo_interfejsa_pri_vypolnenii_dlitelnykh_operacij/1-1-0-12</guid>
			<pubDate>Mon, 09 Aug 2010 17:26:56 GMT</pubDate>
		</item>
		<item>
			<title>Добавление информации о версии в .exe или .dll файл на платформе Windows</title>
			<description>&lt;p&gt;Чтобы добавить информацию о версии в библиотеку достаточно включить следующую строку в файл проекта:&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;&lt;code&gt;VERSION=1.2.3&lt;/code&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
В случае исполнимого файла все будет несколько сложнее. Для начала 
создайте файл ресурсов myapp.rc и включите информацию о нем в файл 
проекта:
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;&lt;code&gt;RC_FILE = myapp.rc&lt;/code&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
Теперь отредактируем файл ресурсов:
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;&lt;code&gt;#ifndef Q_CC_BOR&lt;br&gt;# if defined(UNDER_CE) &amp;amp;&amp;amp; UNDER_CE &amp;gt;= 400&lt;br&gt;# include &lt;winbase.h&amp;gt;&lt;br&gt;# else&lt;br&gt;# include &lt;winver.h&amp;gt;&lt;br&gt;# endif&lt;br&gt;#endif&lt;br&gt;VS_VERSION_INFO VERSIONINFO&lt;br&gt; FILEVERSION 0,2,0,0&lt;br&gt; PRODUCTVERSION 0,2,0,0&lt;br&gt; FILEFLAGSMASK 0x3fL&lt;br&gt;#ifdef _DEBUG&lt;br&gt; FILEFLAGS 0x1L&lt;br&gt;#else&lt;br&gt; FILEFLAGS 0x0L&lt;br&gt;#endif&lt;br&gt; FILEOS 0x4L&lt;br&gt; FILETYPE 0x1L&lt;br&gt; FILESUBTYPE 0x0L&lt;br&gt;BEGIN&lt;br&gt; BLOCK &quot;StringFileInfo&quot;&lt;br&gt; BEGIN&lt;br&gt; BLOCK &quot;040904b0&quot;&lt;br&gt; BEGIN&lt;br&gt; VALUE &quot;Comments&quot;, &quot;Application&amp;#92;0&quot;&lt;br&gt; VALUE &quot;CompanyName&quot;, &quot;SPECTRON NPO&amp;#92;0&quot;&lt;br&gt; VALUE &quot;FileDescription&quot;, &quot;XReport project&amp;#92;0&quot;&lt;br&gt; VALUE &quot;FileVersion&quot;, &quot;0, 2, 0, 0&amp;#92;0&quot;&lt;br&gt; VALUE &quot;InternalName&quot;, &quot;XReport&amp;#92;0&quot;&lt;br&gt; VALUE &quot;LegalCopyright&quot;, &quot;Copyright (C) 2008&amp;#92;0&quot;&lt;br&gt; VALUE &quot;OriginalFilename&quot;, &quot;XReport.exe&amp;#92;0&quot;&lt;br&gt; VALUE &quot;ProductName&quot;, &quot;XReport.exe&amp;#92;0&quot;&lt;br&gt; VALUE &quot;ProductVersion&quot;, &quot;0, 2, 0, 0&amp;#92;0&quot;&lt;br&gt; END&lt;br&gt; END&lt;br&gt; BLOCK &quot;VarFileInfo&quot;&lt;br&gt; BEGIN&lt;br&gt; VALUE &quot;Translation&quot;, 0x409, 1200&lt;br&gt; END&lt;br&gt;END&lt;/code&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
Пересоберем проект.</description>
			
			<link>https://qt.ucoz.net/publ/dobavlenie_informacii_o_versii_v_exe_ili_dll_fajl_na_platforme_windows/1-1-0-11</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/dobavlenie_informacii_o_versii_v_exe_ili_dll_fajl_na_platforme_windows/1-1-0-11</guid>
			<pubDate>Mon, 09 Aug 2010 17:24:16 GMT</pubDate>
		</item>
		<item>
			<title>Установка иконки приложения на платформе Windows</title>
			<description>&lt;p&gt;Поместите файл иконки(пусть он будет зваться myappico.ico) в каталог с
 исходными текстами программы. В том же каталоге создайте файл myapp.rc и
 поместите в него следущую строчку:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;&lt;code&gt;IDI_ICON1 ICON DISCARDABLE &quot;myappico.ico&quot;&lt;/code&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
Добавьте информацию о файле ресурсов в ваш .pro файл:
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;&lt;code&gt;RC_FILE = myapp.rc&lt;/code&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
И наконец, используя &lt;tt&gt;qmake&lt;/tt&gt;, обновите ваши &lt;tt&gt;makefile&lt;/tt&gt; файлы.</description>
			
			<link>https://qt.ucoz.net/publ/ustanovka_ikonki_prilozhenija_na_platforme_windows/1-1-0-10</link>
			<category>Мои статьи</category><dc:creator></dc:creator>
			<guid>https://qt.ucoz.net/publ/ustanovka_ikonki_prilozhenija_na_platforme_windows/1-1-0-10</guid>
			<pubDate>Mon, 09 Aug 2010 17:21:38 GMT</pubDate>
		</item>
	</channel>
</rss>