<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2022495993688215761</id><updated>2024-11-08T21:09:12.967+05:00</updated><category term="Qt"/><category term="QScintilla QsciScintilla"/><category term="QScintilla QsciScintilla Lexer"/><category term="Криптография"/><category term="qtitan"/><category term="DirectMap"/><category term="Qt Installer"/><category term="pdf PoDoFo"/><category term="windows"/><category term="DataEdit"/><category term="Flash"/><category term="Flex"/><category term="IP"/><category term="Microsoft"/><category term="Multimedia"/><category term="Nokia"/><category term="OpenSSL"/><category term="PoDoFo Unicode text"/><category term="PostgreSQL"/><category term="QApplication"/><category term="QAudioOutput"/><category term="QSound"/><category term="QTextDocment"/><category term="Qt Software"/><category term="QtPhonon"/><category term="QtitanRibbon"/><category term="Ribbon"/><category term="Silverlight"/><category term="Trolltech"/><category term="bug"/><category term="close button"/><category term="delegate"/><category term="event"/><category term="eventFilter"/><category term="gui"/><category term="https"/><category term="item"/><category term="mocinclude"/><category term="notify"/><category term="precompiled headers"/><category term="print"/><category term="qt pdf"/><category term="qtreeview"/><category term="replace"/><category term="script"/><category term="selfdel"/><category term="visual studio"/><category term="Настоящий программист"/><category term="баг"/><category term="большая таблица"/><category term="идиотизм"/><category term="кнопка закрытия окна"/><category term="компоненты Qt"/><category term="маразм"/><category term="маразм крепчал"/><category term="панель задач"/><category term="перехват событий"/><category term="печать"/><title type='text'>Qt Coding</title><subtitle type='html'>Qt programming, Qt tools, source code, компоненты для Qt</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>75</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-2701135866112189717</id><published>2019-10-24T13:05:00.001+05:00</published><updated>2019-10-24T13:06:08.941+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="print"/><category scheme="http://www.blogger.com/atom/ns#" term="QTextDocment"/><category scheme="http://www.blogger.com/atom/ns#" term="печать"/><title type='text'>QTextDocument печать длинных таблиц</title><content type='html'>Для Qt 4.8.5 или Qt 4.8.6.&lt;br /&gt;
Ох и наелся я с печатью длинных таблиц. Багов в 4.8 просто мильён.&lt;br /&gt;
Итак, есть длинная таблица в html. Мы подаем ее в QTextDocument через setHtml(). Затем печатаем&lt;br /&gt;
doc-&amp;gt;print(printer);&lt;br /&gt;
1) Чтобы таблица повторяла на каждой странице заголовок нужно этот заголовок выделить тегом &amp;lt;thead&amp;gt;.&lt;br /&gt;
2) Это не должна быть вложенная таблица.&lt;br /&gt;
3) Забудьте про задний фон, не используйте bgcolor или background-color. Т.к. это чудо вполне может закрасить этим цветом шапку таблицы.&lt;br /&gt;
4) Не используйте valign=middle.&lt;br /&gt;
&lt;br /&gt;
После этого таблица будет более менее корректно отображаться. Резать оно будет конечно от балды и возможно прям поперек слова. Но это лучше чем ничего.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/2701135866112189717/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/10/qtextdocument.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2701135866112189717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2701135866112189717'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/10/qtextdocument.html' title='QTextDocument печать длинных таблиц'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-440761157312678046</id><published>2019-04-23T17:09:00.003+05:00</published><updated>2019-04-23T17:09:42.707+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="delegate"/><category scheme="http://www.blogger.com/atom/ns#" term="item"/><category scheme="http://www.blogger.com/atom/ns#" term="qtreeview"/><title type='text'>QTreeView items spacing</title><content type='html'>Как сделать отступ между элементами QTreeView?&lt;br /&gt;
&lt;br /&gt;
Первый и простой способ - заюзать styleSheet.&lt;br /&gt;
&lt;br /&gt;
my_tree_-&amp;gt;setStyleSheet(&quot;.QTreeView::item{ margin: 0px 6px 6px 6px; border: 0;}&quot;);&lt;br /&gt;
&lt;br /&gt;
Второй тру способ заюзать делегата.&lt;br /&gt;
my_tree_-&amp;gt;setItemDelegate(new MyItemDelegate(this));&lt;br /&gt;
&lt;br /&gt;
MyItemDelegate::MyItemDelegate(QObject * parent)&lt;br /&gt;
: QItemDelegate(parent)&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
QSize MyItemDelegate::sizeHint(const QStyleOptionViewItem &amp;amp; option, const QModelIndex &amp;amp; index) const&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp;QSize sz = QItemDelegate::sizeHint(option, index);&lt;br /&gt;
&amp;nbsp; &amp;nbsp;sz.setHeight(sz.height() + 10);//накидываем 10 пикселей по 5 сверху и снизу&lt;br /&gt;
&amp;nbsp; &amp;nbsp;return sz;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MyItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &amp;amp;option,&lt;br /&gt;
&amp;nbsp; &amp;nbsp;const QModelIndex &amp;amp;index) const&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp;QStyleOptionViewItemV3 opt = option;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;opt.rect.adjust(0, 0, -5, -5);//немножко уменьшаем размер item для отрисовки&lt;br /&gt;
&amp;nbsp; &amp;nbsp;QItemDelegate::paint(painter, opt, index);//рисуем&lt;br /&gt;
}&lt;br /&gt;
Вот таким нехитрым способом можно сделать отступы между элементами, мать их, убил на это полдня.&lt;br /&gt;
У QListView есть setSpacing, которого нет у QTreeView.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/440761157312678046/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/04/qtreeview-items-spacing.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/440761157312678046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/440761157312678046'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/04/qtreeview-items-spacing.html' title='QTreeView items spacing'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-3480573622700464065</id><published>2019-04-02T23:55:00.001+05:00</published><updated>2019-04-02T23:55:21.027+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="https"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSSL"/><title type='text'>OpenSSL https</title><content type='html'>Как добавить поддержку OpenSSL в собранную Qt.&lt;br /&gt;
&lt;br /&gt;
1) Ставим OpenSSL в D:\OpenSSL.&lt;br /&gt;
&lt;br /&gt;
2) configure -debug-and-release -mp -qt-zlib -qt-libjpeg -qt-libpng -opensource -platform win32-msvc2008 -openssl -I D:\OpenSSL\include -L D:\OpenSSL\lib&lt;br /&gt;
&lt;br /&gt;
3) cd&amp;nbsp;%QTDIR%:\src\network&lt;br /&gt;
4) qmake&lt;br /&gt;
5) nmake&lt;br /&gt;
&lt;br /&gt;
В проекте:&lt;br /&gt;
QMAKE_LIBDIR += d:/OpenSSL/lib&lt;br /&gt;
LIBS += libeay32.lib ssleay32.lib crypt32.lib&lt;br /&gt;
INCLUDEPATH += D:/OpenSSL/include&lt;br /&gt;
&lt;br /&gt;
Проверяем&lt;br /&gt;
#include &amp;lt;QSslConfiguration&amp;gt;&lt;br /&gt;
QSslConfiguration config = QSslConfiguration::defaultConfiguration();&lt;br /&gt;
&lt;br /&gt;
Должно собраться.&lt;br /&gt;
&lt;br /&gt;
HTTPS запрос.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;QNetworkRequest request;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;QSslConfiguration config = QSslConfiguration::defaultConfiguration();&lt;br /&gt;
&amp;nbsp; &amp;nbsp;config.setProtocol(QSsl::TlsV1);&lt;br /&gt;
&amp;nbsp; &amp;nbsp;request.setSslConfiguration(config);&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;request.setUrl(url);&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;QNetworkReply *netReply = netManager.get(request);&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/3480573622700464065/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/04/openssl-https.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3480573622700464065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3480573622700464065'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/04/openssl-https.html' title='OpenSSL https'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-8508926804133009940</id><published>2019-04-02T17:43:00.001+05:00</published><updated>2019-04-02T17:43:21.479+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PostgreSQL"/><title type='text'>Postgres SQL</title><content type='html'>Поддержка Postgres SQL.&lt;br /&gt;
1) Скачиваем бинари постгреса отсюда&amp;nbsp;&lt;a href=&quot;https://www.postgresql.org/download/&quot;&gt;https://www.postgresql.org/download/&lt;/a&gt;&lt;br /&gt;
2) Копируем бинари на НЖМД&amp;nbsp; например сюда&amp;nbsp;D:\pgsql&lt;br /&gt;
3) Добавляем в PATH путь&amp;nbsp;D:\pgsql\bin&lt;br /&gt;
4) Собираем плагин в Qt&lt;br /&gt;
&lt;ol style=&quot;background-color: white; color: #222222; font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif; font-size: 16px; margin: 0px 0px 0px 30px; padding: 0px;&quot;&gt;
&lt;li style=&quot;line-height: 1.6; padding: 9px 0px;&quot;&gt;Конфигурируем исходники и включаем нужный драйвер как plugin&lt;br /&gt;&lt;code style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px;&quot;&gt;configure.exe -I D:/pgsql/include -L D:/pgsql/lib -plugin-sql-psql&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.6; padding: 9px 0px;&quot;&gt;&lt;code style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px;&quot;&gt;cd src\plugins\sqldrivers\psql&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.6; padding: 9px 0px;&quot;&gt;&lt;code style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px;&quot;&gt;qmake&lt;/code&gt;&lt;/li&gt;
&lt;li style=&quot;line-height: 1.6; padding: 9px 0px;&quot;&gt;&lt;code style=&quot;font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px;&quot;&gt;nmake&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
Проверяем, что в %QTDIR%\plugins\sqldrivers появились файлы qsqlpsql4.dll&lt;br /&gt;qsqlpsqld4.dll&lt;br /&gt;&lt;br /&gt;pro файл править не надо. Используем в проекте &lt;div&gt;
&lt;span style=&quot;color: #222222; font-family: Menlo, Monaco, Courier New, monospace;&quot;&gt;&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_ = QSqlDatabase::addDatabase(&quot;QPSQL&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_.setHostName(&quot;host&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_.setPort(5432);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_.setDatabaseName(&quot;bisys&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_.setUserName(&quot;postgres&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; db_.setPassword(&quot;postgres&quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span style=&quot;color: #222222; font-family: Menlo, Monaco, Courier New, monospace;&quot;&gt;&lt;div&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;db_.open();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/8508926804133009940/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/04/postgres-sql.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8508926804133009940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8508926804133009940'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/04/postgres-sql.html' title='Postgres SQL'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-8792145043488273792</id><published>2019-02-10T12:42:00.000+05:00</published><updated>2019-02-11T08:56:04.435+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mocinclude"/><category scheme="http://www.blogger.com/atom/ns#" term="visual studio"/><title type='text'>MS Visual Studio и mocinclude.tmp</title><content type='html'>Если в вашем проекте больше 40 путей include, которые описаны в INCLUDEPATH, то Qt создает временный файл mocinclude.tmp, в который включает все описанные пути.&lt;br /&gt;
Проблема в том, что студия не совсем корректно обрабатывает этот файл. Выражается это в том, что при каждой сборке студия начинает полностью пересобирать проект вместо того, чтобы пересобрать только измененные файлы.&lt;br /&gt;
Чтобы не допустить создания mocinclude.tmp надо изменить в Qt файл&lt;br /&gt;
&lt;br /&gt;
d:\qt\mkspecs\features\moc.prf&lt;br /&gt;
&lt;br /&gt;
изменив строчку&lt;br /&gt;
win32:count($$list($$INCLUDEPATH), 40, &amp;gt;) {&lt;br /&gt;
&lt;div&gt;
на&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
win32:count($$list($$INCLUDEPATH), 100, &amp;gt;) {&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Таким образом мы просто увеличили количество путей с 40 до 100.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/8792145043488273792/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/02/ms-visual-studio-mocincludetmp.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8792145043488273792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8792145043488273792'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/02/ms-visual-studio-mocincludetmp.html' title='MS Visual Studio и mocinclude.tmp'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-6463067975724820740</id><published>2019-02-06T11:40:00.003+05:00</published><updated>2019-02-07T10:05:43.033+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Qt Installer"/><title type='text'>Qt Installer: удаление по маске</title><content type='html'>Qt Installer не умеет удалять файлы по маске.&lt;br /&gt;
Нельзя просто так взять и написать&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp;component.addOperation(&quot;Execute&quot;, &quot;rm&quot;, &quot;-f&quot;, &quot;files*&quot;);&lt;/blockquote&gt;
Это не сработает. Это обходится вызовом командного интерпретатора&lt;br /&gt;
&lt;br /&gt;
Для Windows&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; component.addOperation(&quot;Execute&quot;, &quot;cmd.exe&quot;, &quot;/C&quot;, &quot;del&quot;, &quot;files*.*&quot;);&lt;/blockquote&gt;
&lt;br /&gt;
Для Linux&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; component.addOperation(&quot;Execute&quot;, &quot;bash&quot;, &quot;-c&quot;, &quot;rm -f files*&quot;);&lt;/blockquote&gt;
Последний параметр для Linux надо писать целиком, не разделяя на части. В этом случае Qt Installer при вызове обернет команду кавычками и результат будет как если бы вы вызвали команду&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
bash -c &quot;rm -f files*&quot;&amp;nbsp;&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/6463067975724820740/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/6463067975724820740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/6463067975724820740'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer.html' title='Qt Installer: удаление по маске'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-3798537514385649094</id><published>2019-02-05T12:19:00.000+05:00</published><updated>2019-02-07T10:03:39.244+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Qt Installer"/><category scheme="http://www.blogger.com/atom/ns#" term="replace"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Qt Installer: replace</title><content type='html'>Qt Installer использует скриптовый язык&amp;nbsp;ECMAScript (&lt;a href=&quot;http://doc.qt.io/qt-5/ecmascript.html&quot;&gt;http://doc.qt.io/qt-5/ecmascript.html&lt;/a&gt;)&lt;br /&gt;
По структуре он схож с JavaScript, но полностью они не пересекаются.&lt;br /&gt;
Но решения можно искать и по JavaScript.&lt;br /&gt;
Например, функция replace меняет только первое вхождение в строку.&lt;br /&gt;
var str = &quot;bla-bla-bla&quot;;&lt;br /&gt;
str.replace(&quot;bla&quot;, &quot;vobla&quot;);&lt;br /&gt;
Получим vobla-bla-bla.&lt;br /&gt;
Чтобы заменить все вхождения, надо использовать регулярку.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
str.replace(/bla/g, &quot;vobla&quot;);&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/3798537514385649094/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer-replace.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3798537514385649094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3798537514385649094'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer-replace.html' title='Qt Installer: replace'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-7252780254587047441</id><published>2019-02-05T09:36:00.001+05:00</published><updated>2023-04-21T12:17:18.648+05:00</updated><title type='text'>Qt Installer</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/7252780254587047441/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer_5.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7252780254587047441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7252780254587047441'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2019/02/qt-installer_5.html' title='Qt Installer'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-3732414991148274672</id><published>2016-04-21T14:23:00.003+05:00</published><updated>2016-04-21T15:22:22.754+05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="большая таблица"/><title type='text'>Снова по прокрутке большой БД</title><content type='html'>Возвращаюсь к теме просмотра большой БД в виде одной большой таблицы QTableView.&lt;br /&gt;
Ранее я писал про извращения с наследником QTableView, теперь будем делать это каноничнее.&lt;br /&gt;
Итак, есть большая БД, на 100 килострок минимум. Какая БД неважно, FireBird, SQLite и т.п.&lt;br /&gt;
&lt;br /&gt;
Первое, что надо сделать это определить модель.&lt;br /&gt;
class QueryModel : public QAbstractTableModel&lt;br /&gt;
и определить в ней rowCount(). rowCount() определяется так:&lt;br /&gt;
&quot;SELECT COUNT(ID) FROM TABLE&quot;&lt;br /&gt;
&lt;br /&gt;
Затем в классе определяем экземпляр QSqlQuery query_, которому говорим SELECT * FROM TABLE, условно.&lt;br /&gt;
&lt;br /&gt;
Далее определяем data()&lt;br /&gt;
QVariant QueryModel::data(const QModelIndex &amp;amp; index, int role) const&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp;if (role == Qt::DisplayRole)&lt;br /&gt;
&amp;nbsp; &amp;nbsp;{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; if (query_-&amp;gt;seek(index.row()))&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;const QSqlRecord &amp;amp; rec = query_-&amp;gt;record();&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QVariant val = rec.value(index.column());&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;QString str = val.toString();&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return str;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;}&lt;/div&gt;
&lt;div&gt;
}&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Всё. Этого достаточно чтобы иметь нормально прокручиваемую таблицу.&lt;/div&gt;
&lt;div&gt;
Небольшое дополнение, не нужно вызывать функции resizeColumnsToContents() и resizeRowsToContents(), это вызовет метод data() для всех строк и получите тормоза.&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/3732414991148274672/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2016/04/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3732414991148274672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/3732414991148274672'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2016/04/blog-post.html' title='Снова по прокрутке большой БД'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-7004655713873467066</id><published>2015-01-14T16:05:00.001+05:00</published><updated>2015-01-14T16:05:30.811+05:00</updated><title type='text'>qmake: встроенные функции, часть 1</title><content type='html'>&lt;a href=&quot;http://blog.mgsxx.com/?p=1970&quot;&gt;http://blog.mgsxx.com/?p=1970&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/7004655713873467066/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2015/01/qmake-1.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7004655713873467066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7004655713873467066'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2015/01/qmake-1.html' title='qmake: встроенные функции, часть 1'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-7152262040785925551</id><published>2015-01-13T17:08:00.001+05:00</published><updated>2015-01-13T17:08:40.770+05:00</updated><title type='text'>Порядок #include</title><content type='html'>&lt;div style=&quot;background-color: white; border: medium none; font-family: sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin-bottom: 13px; max-width: 700px; padding: 0px;&quot;&gt;
Правило подключения имхо очень простое, его не сложно запомнить и не сложно ему следовать:&lt;/div&gt;
&lt;pre class=&quot;prettyprint&quot; style=&quot;background-color: whitesmoke; border: 0px none rgb(136, 136, 136); font-family: Consolas, Monaco, &#39;Liberation Mono&#39;, &#39;Lucida Console&#39;, monospace; font-size: 14px; line-height: 20px; margin-bottom: 10px; overflow: auto; padding: 2px; white-space: pre-wrap; width: 695px;&quot;&gt;&lt;code style=&quot;font-family: Consolas, Monaco, &#39;Liberation Mono&#39;, &#39;Lucida Console&#39;, monospace;&quot;&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;в&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;файле&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;color: #660066;&quot;&gt;MyClass&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;cpp
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;color: #880000;&quot;&gt;#include&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&amp;lt;vector&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;сначала&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;подключаются&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;файлы&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;стандартной&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;библиотеки&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;color: #880000;&quot;&gt;#include&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;boost&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;smart_ptr&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;hpp&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;затем&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;подключатся&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;файлы&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;3rd&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;party &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;библиотек,&lt;/span&gt;&lt;span class=&quot;pln&quot;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;объекты&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;и&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;функции&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;которых&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;Вы&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;используете&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;в&lt;/span&gt;&lt;span class=&quot;pln&quot;&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;своём&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;коде&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;color: #880000;&quot;&gt;#include&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&amp;lt;MyInclude/Helpers.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;свои&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;внутренние&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;заголовочные&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;файлы&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;color: #880000;&quot;&gt;#include&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;color: #008800;&quot;&gt;&amp;lt;MyClass.h&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;color: #006666;&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;свой&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;заголовочный&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;файл,&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;реализацию&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;для&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;которого&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;мы&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;color: #666600;&quot;&gt;пишем&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/7152262040785925551/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2015/01/include.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7152262040785925551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7152262040785925551'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2015/01/include.html' title='Порядок #include'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-8773815995443873444</id><published>2014-09-10T11:12:00.000+06:00</published><updated>2014-09-10T11:12:07.663+06:00</updated><title type='text'>Тестовое задание в компанию IVIDEON</title><content type='html'>Фонарь (тестовое задание)&lt;br /&gt;&lt;br /&gt;Требуется написать управляемый по сети фонарь. Команды управления фонарь&lt;br /&gt;принимает от сервера фонаря. Предполагается, что реализация сервера уже&lt;br /&gt;существует (однако недоступен вам в процессе разработки клиента фонаря).&lt;br /&gt;&lt;br /&gt;Фонарь и сервер общаются по Протоколу Управления Фонарем, работающему поверх&lt;br /&gt;соединения TCP.&lt;br /&gt;&lt;br /&gt;Протокол Управления Фонарем (ПУФ) устроен следующим образом. Для изменения&lt;br /&gt;состояния фонаря сервер передает ему команду управления. Все команды&lt;br /&gt;кодируются в виде TLV (&lt;a class=&quot;wikipedia m&quot; href=&quot;http://en.wikipedia.org/wiki/Type-length-value&quot; style=&quot;-webkit-transition: color 0.4s ease-in-out 0s, border-color; border-bottom-style: solid; border-bottom-width: 1px; border-color: rgb(144, 144, 144); color: #909090; text-decoration: none; transition: color 0.4s ease-in-out 0s, border-color; word-break: break-all;&quot; target=&quot;_blank&quot;&gt;http://en.wikipedia.org/wiki/Type-length-value&lt;/a&gt;), при&lt;br /&gt;этом поле type имеет размер 1 байт, поле length — 2 байта и поле value —&lt;br /&gt;length байт. Все данные передаются по сети в Big Endian.&lt;br /&gt;&lt;br /&gt;ПУФ версии 1 описывает три команды:&lt;br /&gt;● ON (включить фонарь): type = 0x12, length = 0&lt;br /&gt;● OFF (выключить фонарь): type = 0x13, length = 0&lt;br /&gt;● COLOR (сменить цвет): type = 0x20, length = 3, value интерпретируется как&lt;br /&gt;новый цвет фонаря в RGB.&lt;br /&gt;Предполагается, что в будущих версиях ПУФ могут появляться новые команды,&lt;br /&gt;однако структура TLV останется неизменной.&lt;br /&gt;&lt;br /&gt;Реализация фонаря должна удовлетворять следующим требованиям:&lt;br /&gt;&lt;br /&gt;1. При запуске фонарь должен запрашивать хост:порт (по умолчанию&lt;br /&gt;127.0.0.1:9999), подсоединяться по TCP и после этого начать отрабатывать&lt;br /&gt;протокол управления.&lt;br /&gt;&lt;br /&gt;2. При получении данных от сервера фонарь собирает целые команды (type +&lt;br /&gt;length + value) и, если type известен, обрабатывает команду, иначе молча ее&lt;br /&gt;игнорирует.&lt;br /&gt;&lt;br /&gt;3. При получении команды ON фонарь включается (отрисовку фонаря оставляем&lt;br /&gt;на ваше усмотрение).&lt;br /&gt;&lt;br /&gt;4. При получении команды OFF фонарь выключается.&lt;br /&gt;&lt;br /&gt;5. При получении команды COLOR фонарь меняет цвет.&lt;br /&gt;&lt;br /&gt;6. При завершении работы фонарь корректно закрывает соединение с сервером.&lt;br /&gt;&lt;br /&gt;7. Реализация фонаря позволяет легко добавлять любые новые команды.&lt;br /&gt;&lt;br /&gt;Проработанность обработки исключительных ситуаций (ошибки установления&lt;br /&gt;&lt;br /&gt;соединения, обрывы соединения) — на ваше усмотрение.&lt;br /&gt;&lt;br /&gt;Технологические требования:&lt;br /&gt;&lt;br /&gt;1. Задание принимается в виде исходников, готовых к сборке в QtCreator или с&lt;br /&gt;помощью Make-файлов под Linux.&lt;br /&gt;&lt;br /&gt;2. Код должен быть написан по Qt Coding Style.&lt;br /&gt;&lt;br /&gt;3. Репозиторий с кодом должен быть доступен на Bitbucket или Github.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/8773815995443873444/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2014/09/ivideon.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8773815995443873444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8773815995443873444'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2014/09/ivideon.html' title='Тестовое задание в компанию IVIDEON'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-8921879240205436985</id><published>2013-09-03T13:20:00.002+06:00</published><updated>2023-04-21T12:17:19.083+05:00</updated><title type='text'>QHuman DateEdit</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjczoC3WvZx7JzVfdUwpido1BCVrKl5qSMrbuu7yP29E-cbznoN-xzIZLOEyfA-CtpvgrDsr58QCEwc0fBke4J3ZnkRVjvRnTBAEadHGBtUkW5ephq1iXrvzieTDZQLQ7Dwpi4o6G4v9rG7/s1600/hudateedit.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjczoC3WvZx7JzVfdUwpido1BCVrKl5qSMrbuu7yP29E-cbznoN-xzIZLOEyfA-CtpvgrDsr58QCEwc0fBke4J3ZnkRVjvRnTBAEadHGBtUkW5ephq1iXrvzieTDZQLQ7Dwpi4o6G4v9rG7/s1600/hudateedit.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
QHuman DateEdit&amp;nbsp;&lt;/h2&gt;
Альтернативный компонент Qt для ввода даты. Есть возможность ввода пустой или неполной даты.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Недостатки стандартного QDateEdıt&lt;/b&gt;&lt;br /&gt;
Стандартный QDateEdit не позволяет ввести неполную или пустую дату. Датой по умолчанию считается 1 января 2000 года. Нельзя очистить поле, там всегда будет 01.01.2000.&lt;br /&gt;
&lt;br /&gt;
QHuman DateEdit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/8921879240205436985/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2013/09/qhuman-dateedit.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8921879240205436985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/8921879240205436985'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2013/09/qhuman-dateedit.html' title='QHuman DateEdit'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjczoC3WvZx7JzVfdUwpido1BCVrKl5qSMrbuu7yP29E-cbznoN-xzIZLOEyfA-CtpvgrDsr58QCEwc0fBke4J3ZnkRVjvRnTBAEadHGBtUkW5ephq1iXrvzieTDZQLQ7Dwpi4o6G4v9rG7/s72-c/hudateedit.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-1805872022067448032</id><published>2013-07-02T11:21:00.001+06:00</published><updated>2013-07-02T11:29:19.333+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="компоненты Qt"/><category scheme="http://www.blogger.com/atom/ns#" term="панель задач"/><title type='text'>Компонент &quot;Панель задач&quot;</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRD37H6pAoWGk2vXGMfgIAqH07JaC2TPyhYIHrOwt_rsCe4e_1kE-sHdgsxDMQdCvZKpIv3eeuVS3x8NuwDFMTg6y2rkKtjGulI57GP7cA8xWHYUKlrxgS8OASNwnwCQdK-SbEaDWwA8r/s694/79286-2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRD37H6pAoWGk2vXGMfgIAqH07JaC2TPyhYIHrOwt_rsCe4e_1kE-sHdgsxDMQdCvZKpIv3eeuVS3x8NuwDFMTg6y2rkKtjGulI57GP7cA8xWHYUKlrxgS8OASNwnwCQdK-SbEaDWwA8r/s200/79286-2.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Наткнулся на qt-apps.org на компонент для Qt &quot;Панель задач&quot; (&lt;a href=&quot;http://qt-apps.org/content/show.php/iisTaskPanel?content=79286&quot;&gt;Task Panel&lt;/a&gt;). Подобные панели используются в проводнике Windows. По крайней мере использовались в XP, в семерке такой панели уже существенно меньше. Но тем не менее, может пригодиться.&lt;br /&gt;
&lt;br /&gt;
Лицензия LGPL, то есть, можно использовать в коммерческих приложениях.&lt;br /&gt;
Проблем с использованием не обнаружил, единственно, что не понравилось - закругления уголков, немного подрихтовал напильником, чтобы было без сглаживания уголков.&lt;br /&gt;
Возможности компонента:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Группировка задач по блокам.&lt;/li&gt;
&lt;li&gt;Возможность добавить свой виджет в блок. Стандартное решение - это размещение ссылок в блоках.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Эффекты анимации при сворачивании/разворачивании блоков.&lt;/li&gt;
&lt;li&gt;Возможность задать свою цветовую схему. По умолчанию предлагаются две стандартные схемы в стиле Windows XP.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Простой пример использования.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Создание панели задач&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; iisTaskPanel * panel =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;iisTaskPanel(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Установка схемы по умолчанию, обычно это голубенькая схема&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; panel-&amp;gt;setScheme(iisWinXPTaskPanelScheme::defaultScheme());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Создание блока на панели&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; iisTaskBox&amp;nbsp; * tbProgram =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;iisTaskBox(QPixmap(), tr(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&quot;Program&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Создание ссылки в блоке&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; iisIconLabel * lblHelp =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;iisIconLabel(QPixmap(), tr(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&quot;Help&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;), tbProgram);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Связывание со слотом&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; connect(lblHelp, SIGNAL(activated()),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;, SLOT(help()));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Добавление в блок&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; tbProgram-&amp;gt;addIconLabel(lblHelp);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Еще одна ссылка&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; iisIconLabel * lblLogout =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;iisIconLabel(QPixmap(), tr(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&quot;Logout&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;), tbProgram);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; connect(lblLogout, SIGNAL(activated()),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;, SLOT(unlogin()));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; tbProgram-&amp;gt;addIconLabel(lblLogout);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Установка схемы для блока&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; tbProgram-&amp;gt;setScheme(iisWinXPTaskPanelScheme2::defaultScheme());&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: small;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Еще один блок&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; iisTaskBox * tbBlock =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;iisTaskBox(QPixmap(), tr(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&quot;Block 2&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: small;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;// Добавляем блоки на панель&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; panel-&amp;gt;addWidget(tbProgram);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&amp;nbsp; panel-&amp;gt;addWidget(tbBlock);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
К слову сказать, этот компонент - часть коллекции виджетов&amp;nbsp;QSint&amp;nbsp;от&amp;nbsp;&lt;a href=&quot;http://sintegrial.com/qsint&quot;&gt;http://sintegrial.com&lt;/a&gt;.&lt;br /&gt;
Сама коллекция доступна по адресу&amp;nbsp;&lt;a href=&quot;http://sintegrial.com/qsint&quot;&gt;http://sintegrial.com/qsint&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/1805872022067448032/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2013/07/blog-post.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/1805872022067448032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/1805872022067448032'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2013/07/blog-post.html' title='Компонент &quot;Панель задач&quot;'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaRD37H6pAoWGk2vXGMfgIAqH07JaC2TPyhYIHrOwt_rsCe4e_1kE-sHdgsxDMQdCvZKpIv3eeuVS3x8NuwDFMTg6y2rkKtjGulI57GP7cA8xWHYUKlrxgS8OASNwnwCQdK-SbEaDWwA8r/s72-c/79286-2.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-5919315309386678178</id><published>2013-02-06T17:22:00.000+06:00</published><updated>2013-02-06T17:23:14.228+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="event"/><category scheme="http://www.blogger.com/atom/ns#" term="eventFilter"/><category scheme="http://www.blogger.com/atom/ns#" term="notify"/><category scheme="http://www.blogger.com/atom/ns#" term="QApplication"/><category scheme="http://www.blogger.com/atom/ns#" term="перехват событий"/><title type='text'>Глобальный перехват событий</title><content type='html'>Если нужно поставить глобальный обработчик на все события то нужно переопределить метод&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: separate; border-spacing: 0px; font-family: Arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #363534; font-family: Verdana; font-size: 16px; line-height: 15px;&quot;&gt;&lt;table class=&quot;alignedsummary&quot; style=&quot;background-color: #f6f6f6; border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; border-spacing: 0px; border-top-left-radius: 7px; border-top-right-radius: 7px; border: 1px solid rgb(230, 230, 230); font-size: 11px; margin: 5px; width: 450px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;memItemLeft rightAlign topAlign&quot; style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 10px; padding-right: 5px; padding-top: 3px; text-align: right; vertical-align: top;&quot;&gt;virtual bool&lt;/td&gt;&lt;td class=&quot;memItemRight bottomAlign&quot; style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 15px; padding-top: 3px;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogger.com/qapplication.html#notify&quot; style=&quot;color: #4c0033; text-decoration: none;&quot;&gt;notify&lt;/a&gt;&lt;/b&gt;&amp;nbsp;( QObject *&amp;nbsp;&lt;i&gt;receiver&lt;/i&gt;, QEvent *&amp;nbsp;&lt;i&gt;e&lt;/i&gt;&amp;nbsp;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
класса QApplication.&lt;br /&gt;
Например, если мы хотим перехватить все перемещения мышки, то нам поможет такой класс&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 12px; padding: 10px;&quot;&gt;&lt;table style=&quot;background-color: white; font-family: Verdana, Geneva, sans-serif; width: 96%px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;c&quot; nowrap=&quot;nowrap&quot; style=&quot;background-color: #eeeeee; font-family: &#39;Courier New&#39;, Courier, monospace; margin: 0px; padding: 0px;&quot;&gt;&lt;pre style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: 12px; padding: 10px;&quot;&gt;&lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; MyApp : &lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; QApplication
{
&lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;:
   MyApp(&lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; &amp;amp; argc, &lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;char&lt;/span&gt; ** argv) : QApplication(argc, argv) {}
   
   &lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;virtual bool&lt;/span&gt; notify(QObject * receiver, QEvent * e)
   {
      &lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (e-&amp;gt;type() == QEvent::MouseMove)
      {
         //обрабатываем событие
      }
      &lt;span class=&quot;kw&quot; style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; QApplication::notify(receiver, e);
   }
};&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/5919315309386678178/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2013/02/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/5919315309386678178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/5919315309386678178'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2013/02/blog-post.html' title='Глобальный перехват событий'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-7848935202017410266</id><published>2013-02-04T17:35:00.001+06:00</published><updated>2013-02-06T17:23:00.735+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="close button"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="кнопка закрытия окна"/><title type='text'>Отключить системную кнопку close</title><content type='html'>Отключить системную кнопку Close у окна можно установив окну флаги:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; setWindowFlags(Qt::Window&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Qt::WindowMinimizeButtonHint&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;| Qt::WindowMaximizeButtonHint&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;| Qt::CustomizeWindowHint);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/7848935202017410266/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2013/02/close.html#comment-form' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7848935202017410266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7848935202017410266'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2013/02/close.html' title='Отключить системную кнопку close'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-4244623438371496545</id><published>2012-12-29T10:24:00.000+06:00</published><updated>2014-06-19T15:37:17.058+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gui"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="qtitan"/><category scheme="http://www.blogger.com/atom/ns#" term="QtitanRibbon"/><category scheme="http://www.blogger.com/atom/ns#" term="Ribbon"/><title type='text'>Подключаем интерфейс в стиле Microsoft Ribbon</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbToTdwdLwjzNQB4TjbaCvVS7jcoo9VKu9sosCcXNgMfSRf9a_-15vssfYnJ_AdD6Uxc9fqGFxmClGbWP3Ea0efPihyphenhyphenOsW1J5o_zigfjcM_f4I3cp9Nx0H424Saorg_uIBWBya1tKprF4N/s1600/ribbon.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbToTdwdLwjzNQB4TjbaCvVS7jcoo9VKu9sosCcXNgMfSRf9a_-15vssfYnJ_AdD6Uxc9fqGFxmClGbWP3Ea0efPihyphenhyphenOsW1J5o_zigfjcM_f4I3cp9Nx0H424Saorg_uIBWBya1tKprF4N/s1600/ribbon.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Впервые Microsoft анонсировала интерфейс Ribbon (что переводится как &quot;лента&quot;) в 2007 году в новом выпуске MS Office.&amp;nbsp;Новый интерфейс разительно отличался от привычных меню и тулбаров и не всем пришелся по вкусу.&lt;br /&gt;
&lt;br /&gt;
У многих пользователей были трудности при переобучении, но с тех пор прошло уже много лет и пользователи как-то попривыкли к ленточному интерфейсу. Microsoft продолжает использовать риббоны в своих продуктах, в Windows 7, например, почти все стандартные приложения (MS Paint, WordPad) имеют интерфейс Ribbon.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Поэтому, чтобы быть в тренде, нужно использовать такой интерфейс в своих приложениях под Windows.&amp;nbsp;Это сразу возвышает ваш программный продукт в глазах пользователей, т.к. сразу видно, что вы движетесь вперед, а не топчетесь на одном месте.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Для программистов на Qt/C++ существует готовое решение, которое называется Qtitan Ribbon &lt;a href=&quot;http://devmachines.ru/&quot;&gt;devmachines.ru&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
Сегодня мы будем подключать Qtitan Ribbon к нашему тестовому приложению на Qt.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
Первым делом скачиваем &lt;a href=&quot;http://devmachines.ru/&quot;&gt;SDK Qtitan Ribbon&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
Доступны варианты для использования в MS Visual Studio 2008, 2010, QtCreator.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Устанавливаем скачанный пакет. Например, в каталог d:\Qtitan.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKO9F3Rox40Q6_o5z2y2o9-hBKftwQjLR7KviYFfTtdhnBKCdlailOPzpMlrV832nyWen1Cdv45EA7jgbmQuIi0YRbMBlSSXEN7HA2qEztRa4jIl8JzNdFTITdWBQfh2dgTKfx7fCfh3Ol/s1600/ribbon_install1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKO9F3Rox40Q6_o5z2y2o9-hBKftwQjLR7KviYFfTtdhnBKCdlailOPzpMlrV832nyWen1Cdv45EA7jgbmQuIi0YRbMBlSSXEN7HA2qEztRa4jIl8JzNdFTITdWBQfh2dgTKfx7fCfh3Ol/s320/ribbon_install1.png&quot; height=&quot;250&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Прописываем переменные среды. Добавляем переменную QTITANDIR, и в переменную PATH добавляем путь до бинарников.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWZl2LLYT1DWoqXtFWERqGGQhqSd-LLWh9dIgfkX4WH2d_GbTWtm4vb6uTomYZu3AE0QrFye9P4-r7Vu5bfvO7GeJROe5Psp-8VqQwJlIjta0fUTj0_4P2bTR4OCPGnujnBpXhOuDAGYbx/s1600/titan.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWZl2LLYT1DWoqXtFWERqGGQhqSd-LLWh9dIgfkX4WH2d_GbTWtm4vb6uTomYZu3AE0QrFye9P4-r7Vu5bfvO7GeJROe5Psp-8VqQwJlIjta0fUTj0_4P2bTR4OCPGnujnBpXhOuDAGYbx/s320/titan.png&quot; height=&quot;320&quot; width=&quot;291&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkgVf3WZolRRL6RnBIcKPaEYzt0QaczBQQJOyXmWKZxIu1D6SmX1TS4lcZk0WuE2ZuOhA_s-pHyolx4rt2JhoReMy9sFSRPLCxtk2hQtVMuyhZpLPJRi-a8B2g4CnoYsW12FU0lJBXOtlF/s1600/titan1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkgVf3WZolRRL6RnBIcKPaEYzt0QaczBQQJOyXmWKZxIu1D6SmX1TS4lcZk0WuE2ZuOhA_s-pHyolx4rt2JhoReMy9sFSRPLCxtk2hQtVMuyhZpLPJRi-a8B2g4CnoYsW12FU0lJBXOtlF/s320/titan1.png&quot; height=&quot;139&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Пакет Qtitan Ribbon поставляется с демо-примерами. Помимо примеров с риббонами, в каталоге demos можно найти примеры:&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Классический интерфейс с меню и тулбарами в стилизованном оформлении.&lt;/li&gt;
&lt;li&gt;Стилизованное всплывающее окно, которое всплывает над треем. Подобное окошко можно увидеть у антивирусов.&lt;/li&gt;
&lt;li&gt;Виджеты для боковых панелей, таких как окно свойств некого объекта. Всё это тоже имеет различное стилизованное оформление а-ля Office 2007.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUnlf_NYpWmlktcyN929p3B3V-YmHOiZkwtdz5vxs9hLvjmL7diFGOOa-crPXBPrMdh67UbEhneKZiIKob20caiWslU5RGyiGCySWY-yy6q0KWCq2h14_A4Alct-ObBIOHdVfyGmW-1iy/s1600/widgets.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUnlf_NYpWmlktcyN929p3B3V-YmHOiZkwtdz5vxs9hLvjmL7diFGOOa-crPXBPrMdh67UbEhneKZiIKob20caiWslU5RGyiGCySWY-yy6q0KWCq2h14_A4Alct-ObBIOHdVfyGmW-1iy/s200/widgets.PNG&quot; height=&quot;158&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTlG8tLGkmeoZChZGwfhekR_UJqpKCW-Z-7cgyjbrRzZJVvZ5TbreCyyK9X07uqs_gM3vQusNZpFwzEbNHK4BB0ejGtkL4UMjUqPM7jXkF8CtXSM_QyPtDaFy4EMO0BT9vCGK9-x4NfweT/s1600/gui.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTlG8tLGkmeoZChZGwfhekR_UJqpKCW-Z-7cgyjbrRzZJVvZ5TbreCyyK9X07uqs_gM3vQusNZpFwzEbNHK4BB0ejGtkL4UMjUqPM7jXkF8CtXSM_QyPtDaFy4EMO0BT9vCGK9-x4NfweT/s200/gui.PNG&quot; height=&quot;158&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivNRMFMZL5qAOkSnU9SoSfP8b2K43tMvqwxE3-wohVFO4O3vZURaOqetA0V0_pxokSE1Q-QmgKw3va3nQYwIlkU5Yo1QWAthAQuK1Bf5pgN8yXCUpBj23-0-uR-cNrwBdhlW8s2XvcBHXg/s1600/popup.PNG&quot; imageanchor=&quot;1&quot; style=&quot;display: inline !important; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivNRMFMZL5qAOkSnU9SoSfP8b2K43tMvqwxE3-wohVFO4O3vZURaOqetA0V0_pxokSE1Q-QmgKw3va3nQYwIlkU5Yo1QWAthAQuK1Bf5pgN8yXCUpBj23-0-uR-cNrwBdhlW8s2XvcBHXg/s200/popup.PNG&quot; height=&quot;146&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
В качестве примера, создадим текстовый редактор а-ля WordPad с интерфейсом Microsoft Ribbon.&lt;br /&gt;
&lt;br /&gt;
Создадим простой файл проекта &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ribbon.pro&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;javascript:toggle(&#39;toggleText&#39;, &#39;displayText&#39;);&quot; id=&quot;displayText&quot;&gt;Показать код&lt;/a&gt;
&lt;br /&gt;
&lt;div id=&quot;toggleText&quot; style=&quot;display: none;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;TEMPLATE = app&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;TARGET = ribbon&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;DESTDIR = bin&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;INCLUDEPATH&amp;nbsp;+= ./ gui&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;DEPENDPATH&amp;nbsp; += ./ gui&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;HEADERS += $$files(gui/*.h)&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;SOURCES += main.cpp \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $$files(gui/*.cpp)&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot; /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;# Подключение Qtitan Ribbon&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;QTITANDIR = $$quote($$(QTITANDIR))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;include($$QTITANDIR/src/shared/qtitanribbon.pri)&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
Далее создадим главное окно, класс &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;MainWindow&lt;/span&gt;. Чтобы главное окно приобрело ленточный интерфейс оно должно быть унаследовано от класса&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Qtitan::RibbonMainWindow&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;#include &amp;lt;QtitanRibbon.h&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;MainWindow :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;Qtitan::RibbonMainWindow&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;Q_OBJECT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;MainWindow(QWidget* parent = 0);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;virtual&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;~MainWindow();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;};&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить пример вам следует в свойствах проекта назначить рабочий каталог на папку bin и положить в bin файлы:&lt;br /&gt;
qtnribbon2.dll
&lt;br /&gt;
QtCore4.dll&lt;br /&gt;
QtGui4.dll&lt;br /&gt;
QtScript4.dll&lt;br /&gt;
QtSql4.dll&lt;br /&gt;
QtXml4.dll&lt;br /&gt;
&lt;br /&gt;
Впрочем, если у вас установлена Qt той же версии, что и библиотеки из дистрибутива Qtitan (у меня это 4.8.1), то вам не понадобятся библиотеки с префиксом &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Qt*.dll&lt;/span&gt;.&lt;br /&gt;
Если же вы будете использовать коммерческую лицензию на Qtitan Ribbon, то вы сможете собрать библиотеку&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;qtnribbon2&lt;/span&gt;&amp;nbsp;из исходников с той версией Qt, которая вам необходима.&lt;br /&gt;
&lt;br /&gt;
Чтобы подключить к приложению стиль Ribbon нужно установить объекту QApplication стиль &quot;ribbonstyle&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; QApplication a(argc, argv);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; a.setStyle(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&quot;ribbonstyle&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;);&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
После этого можно создавать элементы интерфейса.&lt;br /&gt;
Для начала создадим ленту с кнопками. Добавим страницу, на странице создадим несколько групп с кнопками и элементами управления.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe7aY-AFInyb3qdzvrMLLzGNGnMoYcbtWHgLwn-0UE6-QoxoYVr3fqsPH5tvGvNpOU7hPhxxnrnmO8N5tPGhBUTldzfMg5rk_Nrb7mwTb8a8BNI8fu9roYce2PfHElzLdZieA7ICBq0dAS/s1600/ribbon1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe7aY-AFInyb3qdzvrMLLzGNGnMoYcbtWHgLwn-0UE6-QoxoYVr3fqsPH5tvGvNpOU7hPhxxnrnmO8N5tPGhBUTldzfMg5rk_Nrb7mwTb8a8BNI8fu9roYce2PfHElzLdZieA7ICBq0dAS/s1600/ribbon1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Ниже, в спойлере, приведен код, создающий этот интерфейс.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;javascript:toggle(&#39;toggleText1&#39;, &#39;displayText1&#39;);&quot; id=&quot;displayText1&quot;&gt;Показать код&lt;/a&gt;
&lt;br /&gt;
&lt;div id=&quot;toggleText1&quot; style=&quot;display: none;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;MainWindow::MainWindow(QWidget * parent) &lt;br /&gt;: Qtitan::RibbonMainWindow(parent)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; setWindowTitle(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Qtitan Ribbon&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp; setCentralWidget(&lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; QWidget(&lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;));&lt;br /&gt;&amp;nbsp; createRibbon();&lt;br /&gt;&amp;nbsp; setWindowState(Qt::WindowMaximized);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; MainWindow::createRibbon()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &lt;span style=&quot;color: green;&quot;&gt;// Main Page&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (Qtitan::RibbonPage* pageButtons = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ribbonBar()-&amp;gt;addPage(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Main&quot;&lt;/span&gt;)))&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: green;&quot;&gt;// Clipboard Group&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Qtitan::RibbonGroup* groupClipboard = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pageButtons-&amp;gt;addGroup(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Clipboard&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (groupClipboard) &lt;br /&gt;&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;&amp;nbsp; groupClipboard-&amp;gt;setOptionButtonVisible();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* action = groupClipboard-&amp;gt;addAction(&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;QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/copy.png&quot;&lt;/span&gt;), &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;tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Copy&quot;&lt;/span&gt;), Qt::ToolButtonTextUnderIcon);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(action, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; action = groupClipboard-&amp;gt;addAction(QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/paste.png&quot;&lt;/span&gt;), &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;tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Paste&quot;&lt;/span&gt;), Qt::ToolButtonTextUnderIcon);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(action, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; action = groupClipboard-&amp;gt;addAction(QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/cut.png&quot;&lt;/span&gt;), &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;tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;C&amp;amp;ut&quot;&lt;/span&gt;), Qt::ToolButtonTextUnderIcon);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(action, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: green;&quot;&gt;// Font Group&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Qtitan::RibbonGroup* groupFont = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pageButtons-&amp;gt;addGroup(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Font&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (groupFont) &lt;br /&gt;&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;&amp;nbsp; groupFont-&amp;gt;setOptionButtonVisible();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QFontComboBox* comboFont = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; QFontComboBox(groupFont);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comboFont-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Font&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comboFont-&amp;gt;setFontFilters(QFontComboBox::MonospacedFonts);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comboFont-&amp;gt;setEditText(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comboFont-&amp;gt;setMinimumWidth(150);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; comboFont-&amp;gt;setMaximumWidth(150);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groupFont-&amp;gt;addWidget(QIcon(), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Font:&quot;&lt;/span&gt;), comboFont);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QSpinBox * spinSize = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; QSpinBox(groupFont);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spinSize-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Font Size&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spinSize-&amp;gt;setMinimum(8);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spinSize-&amp;gt;setMaximum(48);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spinSize-&amp;gt;setMinimumWidth(150);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; groupFont-&amp;gt;addWidget(QIcon(), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Font Size:&quot;&lt;/span&gt;), &lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;, spinSize);&lt;br /&gt;&amp;nbsp;&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;}&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Теперь добавим главную иконку приложения, по нажатию на которую будет открываться меню.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmItK8s0qT3kINp_aehgw9UoqaO1qTRSMu2sAdPzv3OXOKlfY_ouhyphenhyphenshgeAeGNjhjw2vK2NQ879fLd3NDSgO8ziEENj8-NWyBOIYRrPc-3-8NkCXG9SWFEsIR-RAqLAkTpa4U64Chv6Cxq/s1600/ribbon3.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmItK8s0qT3kINp_aehgw9UoqaO1qTRSMu2sAdPzv3OXOKlfY_ouhyphenhyphenshgeAeGNjhjw2vK2NQ879fLd3NDSgO8ziEENj8-NWyBOIYRrPc-3-8NkCXG9SWFEsIR-RAqLAkTpa4U64Chv6Cxq/s320/ribbon3.png&quot; height=&quot;217&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ-gZnwmPEQ5d8MyfZF3emuJwgmhQcBG2P4J0MWqoLBHABHKf8qyZLlf3q2L-tpHwRmqSOvNOC0vT69lXa1C3INVDQcA2wXfM8ws1it5JqYGULTxQZtWfAYFSallmvvhGd3arIsYtB2IbE/s1600/ribbon2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ-gZnwmPEQ5d8MyfZF3emuJwgmhQcBG2P4J0MWqoLBHABHKf8qyZLlf3q2L-tpHwRmqSOvNOC0vT69lXa1C3INVDQcA2wXfM8ws1it5JqYGULTxQZtWfAYFSallmvvhGd3arIsYtB2IbE/s200/ribbon2.PNG&quot; height=&quot;159&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Код в спойлере.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;javascript:toggle(&#39;toggleText2&#39;, &#39;displayText2&#39;);&quot; id=&quot;displayText2&quot;&gt;Показать код&lt;/a&gt;
&lt;br /&gt;
&lt;div id=&quot;toggleText2&quot; style=&quot;display: none;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; MainWindow::createMenuFile()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; QIcon iconLogo;&lt;br /&gt;&amp;nbsp; iconLogo.addPixmap(QPixmap(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/shared/res/qtitan.png&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp; iconLogo.addPixmap(QPixmap(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/shared/res/qtitanlogo32x32.png&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (QAction* actionFile = ribbonBar()-&amp;gt;addSystemButton(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconLogo, tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;File&quot;&lt;/span&gt;))) &lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;actionFile-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Click here to see everything&amp;lt;br /&amp;gt;&quot;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;you can do with your&amp;lt;br /&amp;gt;document&quot;&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (Qtitan::RibbonSystemPopupBar* popupBar = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; qobject_cast&amp;lt;Qtitan::RibbonSystemPopupBar*&amp;gt;(actionFile-&amp;gt;menu()))&lt;br /&gt;&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;&amp;nbsp; QAction* newFile = popupBar-&amp;gt;addAction(&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;QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/new.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;New&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFile-&amp;gt;setShortcut(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Ctrl+N&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFile-&amp;gt;setStatusTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Create a new document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFile-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;New&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newFile-&amp;gt;setEnabled(&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* openFile = popupBar-&amp;gt;addAction(&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;QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/open.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Open...&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openFile-&amp;gt;setShortcut(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Ctrl+O&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openFile-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Open&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openFile-&amp;gt;setStatusTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Open an existing document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(openFile, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(open()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* saveFile = popupBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/save.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Save&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveFile-&amp;gt;setShortcut(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Ctrl+S&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveFile-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveFile-&amp;gt;setStatusTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save the active document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(saveFile, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(save()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* saveAsFile = popupBar-&amp;gt;addAction(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save &amp;amp;As...&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveAsFile-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save As&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; saveAsFile-&amp;gt;setStatusTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save the active document &quot;&lt;/span&gt;&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;&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;with a new name&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(saveAsFile, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(save()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popupBar-&amp;gt;addSeparator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon iconClose;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iconClose.addPixmap(QPixmap(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/close.png&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* actClose = popupBar-&amp;gt;addAction(iconClose, tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Close&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; actClose-&amp;gt;setShortcut(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Ctrl+C&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; actClose-&amp;gt;setStatusTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Exit&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connect(actClose, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(close()));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popupBar-&amp;gt;addPopupBarAction(actClose, Qt::ToolButtonTextBesideIcon);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QAction* option = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; QAction(QPixmap(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smalloption.png&quot;&lt;/span&gt;),&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;tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Opt&amp;amp;ion&quot;&lt;/span&gt;), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; popupBar-&amp;gt;addPopupBarAction(option, Qt::ToolButtonTextBesideIcon);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; option-&amp;gt;setEnabled(&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (RibbonPageSystemRecentFileList* pageRecentFile =&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;popupBar-&amp;gt;addPageRecentFile(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Recent Documents&quot;&lt;/span&gt;)))&lt;br /&gt;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pageRecentFile-&amp;gt;setSize(9);&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;connect(pageRecentFile, &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; SIGNAL(openRecentFile(&lt;span style=&quot;color: blue;&quot;&gt;const&lt;/span&gt; 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; &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(openRecentFile(&lt;span style=&quot;color: blue;&quot;&gt;const&lt;/span&gt; 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;connect(&lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, &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; SIGNAL(updateRecentFileActions(&lt;span style=&quot;color: blue;&quot;&gt;const&lt;/span&gt; QStringList&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; pageRecentFile, &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; SLOT(updateRecentFileActions(&lt;span style=&quot;color: blue;&quot;&gt;const&lt;/span&gt; QStringList&amp;amp;)));&lt;br /&gt;&amp;nbsp;&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;}&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Напоследок создадим панель быстрого доступа к функциям основного меню.
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMCEYiFJ_1Ww2SjaZY0GHqQdnDQQhp_4KIIejkseTqdwyfFdl-0OjVFb2KquPPC_ckody9EVSdAKI6_VaNNRxVpFZ-bkwuO_jkVSd3bqf2HHjgKR52GjqqhUo6OZFbKsdq2iavVa9jbPLu/s1600/ribbon4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMCEYiFJ_1Ww2SjaZY0GHqQdnDQQhp_4KIIejkseTqdwyfFdl-0OjVFb2KquPPC_ckody9EVSdAKI6_VaNNRxVpFZ-bkwuO_jkVSd3bqf2HHjgKR52GjqqhUo6OZFbKsdq2iavVa9jbPLu/s1600/ribbon4.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href=&quot;javascript:toggle(&#39;toggleText3&#39;, &#39;displayText3&#39;);&quot; id=&quot;displayText3&quot;&gt;Показать код&lt;/a&gt;
&lt;br /&gt;
&lt;div id=&quot;toggleText3&quot; style=&quot;display: none;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; MainWindow::createQuickAccessBar()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (Qtitan::RibbonQuickAccessBar* quickAccessBar = &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ribbonBar()-&amp;gt;getQuickAccessBar())&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QAction* action = quickAccessBar-&amp;gt;actionCustomizeButton();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Customize Quick Access Bar&quot;&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;QAction* smallButton = quickAccessBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smallNew.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;New&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Create a new document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connect(smallButton, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quickAccessBar-&amp;gt;setActionVisible(smallButton, &lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton = quickAccessBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smallOpen.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Open&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Open an existing document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connect(smallButton, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quickAccessBar-&amp;gt;setActionVisible(smallButton, &lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton = quickAccessBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smallSave.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setToolTip(tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Save the active document&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connect(smallButton, SIGNAL(triggered()), &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;, SLOT(pressButton()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton = quickAccessBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smallUndo.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Undo&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setShortcut(QKeySequence::Undo);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setEnabled(&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton = quickAccessBar-&amp;gt;addAction(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QIcon(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;:/images/smallRedo.png&quot;&lt;/span&gt;), tr(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;amp;Redo&quot;&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setShortcut(QKeySequence::Redo);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;smallButton-&amp;gt;setEnabled(&lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ribbonBar()-&amp;gt;showQuickAccess(&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
В качестве редактора можно использовать компонент QTextEdit, который мы устанавливаем в качестве центрального виджета.&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;setCentralWidget(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;QTextEdit(&lt;/span&gt;&lt;span style=&quot;background-color: white; color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Courier New&#39;;&quot;&gt;));&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
При желании, также можно добавить панель состояния в стиле Ribbon, и дополнительную панель справа.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4NaxCes0sKphOs0CPXCdPgDkBRaPZZRtd6WnLIMwp_fNLrzV3CKKPXBHtzeJScMVnehU1rLq9qgOcBYixtlIf4yin5sSDomLUVi5YohrumlsIOd-ope5Y-bVDSXMUdDNYvoCP-xPw92mt/s1600/ribbon5.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4NaxCes0sKphOs0CPXCdPgDkBRaPZZRtd6WnLIMwp_fNLrzV3CKKPXBHtzeJScMVnehU1rLq9qgOcBYixtlIf4yin5sSDomLUVi5YohrumlsIOd-ope5Y-bVDSXMUdDNYvoCP-xPw92mt/s400/ribbon5.PNG&quot; height=&quot;93&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
А чтобы заменить стандартный заголовок окна на заголовок в стиле Ribbon достаточно активировать параметр&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ribbonBar()-&amp;gt;setFrameThemeEnabled();&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
При этом заголовок окна будет выровнен по центру и расположен на одном уровне с панелью быстрого доступа.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/4244623438371496545/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/12/microsoft-ribbon.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/4244623438371496545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/4244623438371496545'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/12/microsoft-ribbon.html' title='Подключаем интерфейс в стиле Microsoft Ribbon'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbToTdwdLwjzNQB4TjbaCvVS7jcoo9VKu9sosCcXNgMfSRf9a_-15vssfYnJ_AdD6Uxc9fqGFxmClGbWP3Ea0efPihyphenhyphenOsW1J5o_zigfjcM_f4I3cp9Nx0H424Saorg_uIBWBya1tKprF4N/s72-c/ribbon.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-2493248952605250034</id><published>2012-11-17T15:16:00.000+06:00</published><updated>2012-11-17T18:47:21.001+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Flash"/><category scheme="http://www.blogger.com/atom/ns#" term="Flex"/><category scheme="http://www.blogger.com/atom/ns#" term="Multimedia"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt"/><category scheme="http://www.blogger.com/atom/ns#" term="qtitan"/><title type='text'>Интеграция роликов Adobe Flash/Flex в Qt приложение</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Комплект компонентов под общим названием &lt;/span&gt;&lt;b style=&quot;font-family: Arial;&quot;&gt;Qtitan Multimedia&lt;/b&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt; позволяет разработчикам тесно интегрировать в разрабатываемое Qt приложение такие мультимедийные компоненты, как ролики &lt;/span&gt;&lt;b style=&quot;font-family: Arial;&quot;&gt;Adobe Flash&lt;/b&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;, &lt;/span&gt;&lt;b style=&quot;font-family: Arial;&quot;&gt;Microsoft Silverlight&lt;/b&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt; или документы Adobe Reader.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;В прошлый раз мы внедряли в приложение, написанное на Qt, &lt;b&gt;баннер Silverlight&lt;/b&gt;. Мы не только отобразили баннер в десктоп-приложении, но и осуществили с ним саму тесную интеграцию:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;мы смогли вызвать функцию, определенную в баннере, чтобы передать ей наше имя и,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;наш интерактивный баннер смог позвать функцию, определенную в приложении и передать ему результаты голосования.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Подробнее об этом можно прочитать в&amp;nbsp;&lt;a href=&quot;http://qtcoder.blogspot.ru/2012/10/silverlight-qt.html&quot; target=&quot;_blank&quot;&gt;предыдущем выпуске&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Что будет представлять из себя наш пример на этот раз. Мы построим интерфейс пользователя полностью на &lt;/span&gt;&lt;b style=&quot;font-family: Arial;&quot;&gt;Flash&lt;/b&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;, а результаты работы пользователя с интерфейсом будем передавать в Qt приложение. Второй частью нашего примера станет обратная задача - из Qt приложения мы передадим данные во Flash ролик.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
Создание примера&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Что нам понадобится для создания примера интеграции Flash ролика в Qt приложение:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;ol&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;li&gt;Нам понадобится редактор Adobe Flash для создания нашего ролика. Мы воспользуемся продуктом Adobe Flash Builder, триальную версию которого можно скачать здесь: &lt;a href=&quot;http://www.adobe.com/products/flashbuilder/&quot;&gt;http://www.adobe.com/products/flashbuilder/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Для создания Qt приложения нам понадобится Visual Studio C++ 2008 SP1 и собранный ей Qt фреймворк не ниже версии 4.6.х.&lt;/li&gt;
&lt;li&gt;Конечно же, компоненты Qtitan Multimedia, берем их здесь: &lt;a href=&quot;http://www.devmachines.com/qtitanmultimedia-overview.html&quot;&gt;http://www.devmachines.com&lt;/a&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/ol&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
Создаем Flash ролик&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Adobe Flash Builder предоставляет нам возможность создавать Flash приложения используя технологию &lt;b&gt;Flex&lt;/b&gt;. Flex — это большой набор классов (Flex SDK), содержащий многие не вошедшие во Flash компоненты. “Фишкой” Flex является декларативный язык описания интерфейсов MXML, по структуре похожий на XML. Если сравнивать с технологией Microsoft Silverlight, то мы увидим, что MXML схож по своему назначению с языком XAML в Silverlight. С XAML мы работали в прошлый раз, теперь предстоит работа с MXML.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Итак, Adobe Flash Builder скачан и установлен, самое время начать.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Создадим новый проект в Adobe Flash Builder используя меню &lt;b&gt;File -&amp;gt; New -&amp;gt; Flex Project&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;В явившемся окне зададим имя проекта: FlashForm и укажем путь для сохранения проекта. На этом настройки проекта можно закончить и нажать кнопку Finish.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpKBHpFXIuT0w_ZWdeAL7oL3K2UOZNREwjv8qr0OMoXBb0guz5IubdFgPZOr7jSjvs14Yd3GHxgTR2uVMXEakhT-IaXRiZpF-an3VjxtF9LY89CjmSsrNXV_8dklk4pLMsXuoYCLVMgeM3/s1600/Flash_Qt-v.html1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpKBHpFXIuT0w_ZWdeAL7oL3K2UOZNREwjv8qr0OMoXBb0guz5IubdFgPZOr7jSjvs14Yd3GHxgTR2uVMXEakhT-IaXRiZpF-an3VjxtF9LY89CjmSsrNXV_8dklk4pLMsXuoYCLVMgeM3/s400/Flash_Qt-v.html1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;В результате мы получим проект, готовый к работе. Слева, в окне Package Explorer, располагается дерево проекта, чуть ниже, в окне Components, располагаются доступные элементы интерфейса, а в центре - рабочая область, на которой, собственно, и будет создаваться Rich Internet Application.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;/span&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSsU-uZwqU40AIgorDrGXK-jnMd3yPx9cvoHoGqZeu4_-zc9YI_ayl6dzkMWlhFC5oC2s6MQE3v1fLZyGAvxXNQhhWDFnTClsqRNpi45F3vdkS88rxYO740LfNEOGfF3xwgyVFiy3HyjVr/s1600/Flash_Qt-v.html2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSsU-uZwqU40AIgorDrGXK-jnMd3yPx9cvoHoGqZeu4_-zc9YI_ayl6dzkMWlhFC5oC2s6MQE3v1fLZyGAvxXNQhhWDFnTClsqRNpi45F3vdkS88rxYO740LfNEOGfF3xwgyVFiy3HyjVr/s400/Flash_Qt-v.html2.png&quot; width=&quot;373&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
Создавать интерфейс очень просто - перетаскиваем элементы с вкладки Components на рабочую область и выравниваем как нужно.&lt;/div&gt;
&lt;div&gt;
Набросаем примерно вот такой интерфейс:&lt;/div&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicYPMDfkengE3CdWr6Rqr9o68S-aSnBD25cXxIWRMAF4HSRGxldZiwKTV69gBYURRu2nxuHS0-YmJmIB0yYXvZ20dDdzIUnM2FfIM4rOEu5zrfI5tt-o6Z5AZoEJ-VxoV1cj8SCmYUrezc/s1600/Flash_Qt-v.html3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicYPMDfkengE3CdWr6Rqr9o68S-aSnBD25cXxIWRMAF4HSRGxldZiwKTV69gBYURRu2nxuHS0-YmJmIB0yYXvZ20dDdzIUnM2FfIM4rOEu5zrfI5tt-o6Z5AZoEJ-VxoV1cj8SCmYUrezc/s320/Flash_Qt-v.html3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Здесь мы применили к нашему приложению стиль Zen.&lt;/div&gt;
&lt;div&gt;
Компоненты на форме имеют следующие имена (ID):&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Переключатели (RadioButton): “mr” и “ms”&lt;/li&gt;
&lt;li&gt;Поля ввода (TextInput): “txtFirstName”, “txtLastName”, “txtEmail”, txtLastName&lt;/li&gt;
&lt;li&gt;Область текста (TextArea): txtComments&lt;/li&gt;
&lt;li&gt;Кнопка (Button): “btnSubmit”&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Следующим шагом будет написание обработчика кнопки (Click Handler). Выделяем кнопку в дизайнере и во вкладке Properties в поле On Click выбираем пункт Generate Event Handler.&lt;/div&gt;
&lt;div&gt;
Напишем следующий обработчик нажатия кнопки:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;btnSubmit_clickHandler(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;event&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;:MouseEvent):&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;mrMs:String;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(mr.selected ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrMs =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Mr.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(ms.selected ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrMs =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Ms.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;fn:String = txtFirstName.text;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;ln:String = txtLastName.text;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;em:String = txtEmail.text;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;cm:String = txtComments.text;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; ExternalInterface.call(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, mrMs, fn, ln, em, cm);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Здесь мы собираем данные со всех полей ввода и передаем их функции call объекта ExternalInterface. Первым параметром функции call идет имя функции JavaScript’a “Submit”, затем передаются аргументы функции. Функцию “Submit” на самом деле будет изображать наше Qt приложение, но для Flash все выглядит как работа с обычными функциями JavaScript.&lt;/div&gt;
&lt;div&gt;
Класс ExternalInterface используется для связи ролика с контейнером Flash Player’а, например, с веб-страницей, а в нашем случае с плагином Qtitan.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
В принципе сейчас мы могли бы приступать к интеграции ролика в Qt приложение, однако, чтобы более не возвращаться к Flash Builder’у, мы сразу напишем реализацию обратной задачи - передачу данных из приложения в ролик.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Откроем исходный код ролика и добавим функцию в секцию CDATA.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;init():&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; ExternalInterface.addCallback(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, submit);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Здесь мы ставим функцию обратной связи на внешний контейнер, что позволит нам вызывать эту функцию из Qt приложения.&lt;/div&gt;
&lt;div&gt;
Напишем саму callback-функцию.&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;submit(arg1:String, arg2:String, arg3:String, arg4:String, arg5:String):&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(arg1 ==&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Mr.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mr.selected =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ms.selected =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtFirstName.text = arg2;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtLastName.text&amp;nbsp; = arg3;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtEmail.text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = arg4;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtComments.text&amp;nbsp; = arg5;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Эта функция принимает 5 аргументов и заполняем ими поля ввода Flash-ролика.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Для того, чтобы callback установился при загрузке Flash-ролика, мы должны прописать его в секции xmlns:mx.&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: black; font-family: Courier New;&quot;&gt;xmlns:mx=&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: Courier New;&quot;&gt;&quot;library://ns.adobe.com/flex/mx&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;creationComplete=&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #a31515; font-family: Courier New;&quot;&gt;&quot;init();&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Таким образом, при загрузке ролика Flash Player вызовет функцию init(), что повлечет установку нужного нам callback’a.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
На этом работу с Flash можно считать законченной, поэтому мы экспортируем результат нашей работы и перейдем к созданию Qt-приложения и интеграции в него Flash-ролика.&lt;/div&gt;
&lt;div&gt;
Экспорт из Adobe Flash Builder осуществляется через меню &lt;b&gt;Project -&amp;gt; Export Release Build ...&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;
&lt;br /&gt;&lt;/h3&gt;
&lt;h3&gt;
Создание Qt-приложения&lt;/h3&gt;
&lt;div&gt;
Начнем создание проекта с написания файла проекта:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;TEMPLATE = app&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;DESTDIR = bin&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;HEADERS&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;= mainwindow.h&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;SOURCES&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;= main.cpp \&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&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; mainwindow.cpp&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;RESOURCES&amp;nbsp;&amp;nbsp; = flash.qrc&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;include&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;($$(QTITANDIR)/src/shared/shared.pri)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Наш ролик с именем FlashForm.swf добавим в файл ресурсов:&lt;br /&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;lt;!DOCTYPE RCC&amp;gt;&amp;lt;RCC version=&quot;1.0&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;lt;qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;gt;res/FlashForm.swf&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;lt;/qresource&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;lt;/RCC&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Выполним команду qmake -tp vc, чтобы получить .vcproj файл для Visual Studio.&lt;/div&gt;
&lt;div&gt;
Откроем проект и откроем файл mainwindow.h. Определим класс MainWindow:&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;MainWindow :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QMainWindow&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; Q_OBJECT&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; MainWindow(QWidget *parent = 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QScriptValue submitFromFlash(QScriptContext *, QScriptEngine *);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;slots:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;submit();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;getUrl(NPluginStreamArgs&amp;amp; args);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; Qtitan::FlashPlayer * m_flashPlayer;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QWidget * makeWidget();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;};&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
В этом классе у нас определена статическая функция &lt;b&gt;submitFromFlash&lt;/b&gt; для получения данных из Flash ролика. Определен слот submit(), который будет пересылать данные из Qt-приложения во Flash ролик. Слот getUrl нужен для организации взаимодействия с роликом.&lt;/div&gt;
&lt;div&gt;
Посмотрим на код конструктора класса:&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;MainWindow::MainWindow(QWidget *parent)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;: QMainWindow(parent)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; setWindowTitle(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Flash Qt Exchanger&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Создаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;Flash Player&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; m_flashPlayer =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;Qtitan::FlashPlayer();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; m_flashPlayer-&amp;gt;setSource(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;:/res/FlashForm.swf&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; connect(m_flashPlayer, SIGNAL(getUrl(NPluginStreamArgs&amp;amp;)),&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, SLOT(getUrl(NPluginStreamArgs&amp;amp;)));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; m_flashPlayer-&amp;gt;setMinimumSize(450, 300);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Регистрируем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;функцию&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; m_flashPlayer-&amp;gt;registrScriptableFunction(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, SubmitFromFlash);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Создаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;центральный&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;объект&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QTabWidget * widget&amp;nbsp; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QTabWidget(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; setCentralWidget(widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Добавляем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;FlashForm&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; widget-&amp;gt;addTab(m_flashPlayer,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Flash App&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Добавляем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;Qt&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;форму&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; widget-&amp;gt;addTab(makeWidget(),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Qt App&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Активируем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;ролик&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; m_flashPlayer-&amp;gt;setActive(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Проверяем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;результат&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;активации&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(!m_flashPlayer-&amp;gt;isActive())&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Если&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;ролик&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;неактивен&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;собщаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;об&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;этом&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QMessageBox::about(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, tr(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Adobe Flash Demo&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;The &amp;lt;b&amp;gt;Adobe Flash&amp;lt;/b&amp;gt; is not installed at your PC.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Здесь мы загружаем Flash ролик аналогично как мы делали это с Silverlight, регистрируем функцию Submit, для получения данных из ролика, и формируем &amp;nbsp;пользовательский интерфейс.&lt;/div&gt;
&lt;div&gt;
Пользовательский интерфейс представляет собой QTabWidget - в одной из вкладок располагается Flash-приложение, в другой - Qt-приложение.&lt;/div&gt;
&lt;div&gt;
Qt-приложение полностью аналогично созданному нами во Flash.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX6LN-fpNd7CGKuDKUtvsmLWGp4zV7j9R6siouaaI1hMVy4XkUqdSyaleKC1APkLS4_ihEyw9k0DqcGXX7nREyC0UDnEW6DnGnuiMc_SbxttlYqbQ3H3bqb5Q18QCIlPumiqRg4pCnmXUy/s1600/Flash_Qt-v.html4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX6LN-fpNd7CGKuDKUtvsmLWGp4zV7j9R6siouaaI1hMVy4XkUqdSyaleKC1APkLS4_ihEyw9k0DqcGXX7nREyC0UDnEW6DnGnuiMc_SbxttlYqbQ3H3bqb5Q18QCIlPumiqRg4pCnmXUy/s320/Flash_Qt-v.html4.png&quot; width=&quot;306&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Создает этот интерфейс функция makeWidget() класса MainWindow:&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;QWidget * MainWindow::makeWidget()&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Создаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;центральный&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;виджет&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QWidget * widget&amp;nbsp;&amp;nbsp; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QWidget(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QGridLayout * gLayout =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QGridLayout;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;setContentsMargins(32, 16, 32, 32);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; widget-&amp;gt;setLayout(gLayout);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Создаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;компоненты&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QLabel * lbl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;&amp;lt;h2&amp;gt;Personal Information&amp;lt;/h2&amp;gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QLabel * lblFirstName =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;First Name&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QLabel * lblLastName =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Last Name&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QLabel * lblEmail&amp;nbsp;&amp;nbsp; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Email&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QLabel * lblComments =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Comments&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; mr =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QRadioButton(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Mr.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; ms =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QRadioButton(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Ms.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtFirstName =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit(widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtLastName =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit(widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtEmail&amp;nbsp;&amp;nbsp; =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit(widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; txtComments =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QTextEdit(widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Создаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;управляющую&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;кнопку&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QPushButton * btn =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QPushButton(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, widget);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; connect(btn, SIGNAL(clicked()),&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;, SLOT(submit()));&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Размещаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;их&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;в&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;GridLayout&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(lbl, 0, 0, 1, 2);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(mr, 1, 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(ms, 1, 1);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(lblFirstName, 2, 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(txtFirstName, 2, 1);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(lblLastName, 3, 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(txtLastName, 3, 1);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(lblEmail, 4, 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(txtEmail, 4, 1);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(lblComments, 5, 0);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(txtComments, 5, 1);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; gLayout-&amp;gt;addWidget(btn, 6, 1, Qt::AlignRight);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;widget;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Код функции, которая принимает значения из Flash-ролика и устанавливает значения в поля ввода, приведен ниже:&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;QScriptValue MainWindow::submitFromFlash(QScriptContext* context, QScriptEngine *)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;count = context-&amp;gt;argumentCount();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(count == 5)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QString mrMs&amp;nbsp;&amp;nbsp; = context-&amp;gt;argument(0).toString();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QString firstName = context-&amp;gt;argument(1).toString();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QString lastName = context-&amp;gt;argument(2).toString();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QString email&amp;nbsp;&amp;nbsp; = context-&amp;gt;argument(3).toString();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; QString cmnts&amp;nbsp;&amp;nbsp; = context-&amp;gt;argument(4).toString();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;(mrMs.contains(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Mr&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;))&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;mr-&amp;gt;setChecked(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;ms-&amp;gt;setChecked(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; txtFirstName -&amp;gt;setText(firstName);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; txtLastName -&amp;gt;setText(lastName);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; txtEmail&amp;nbsp;&amp;nbsp; -&amp;gt;setText(email);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp; txtComments -&amp;gt;setText(cmnts);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
Эта функция определена как статическая, поэтому, чтобы она смогла обратиться к полям ввода класса MainWindow, мы должны сделать элементы управления статическими и вынести за пределы класса:&lt;br /&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QRadioButton * mr;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QRadioButton * ms;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit * txtFirstName;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit * txtLastName;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QLineEdit * txtEmail;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QTextEdit * txtComments;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Ниже приведен код функции, которая передает значения из владки Qt app и передает их Flash- ролику.&lt;br /&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;MainWindow::submit()&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Получаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;доступ&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;к&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;функциям&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;ролика&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QScriptValue flashObject = m_flashPlayer-&amp;gt;pluginScriptValue();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Получаем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;доступ&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;к&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;функции&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;submit&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QScriptValue func = flashObject.property(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;//&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;Заполняем&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;список&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: Courier New;&quot;&gt;аргументов&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QScriptValueList args;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QString mrMs&amp;nbsp;&amp;nbsp; = mr-&amp;gt;isChecked() ?&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Mr.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;Ms.&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QString firstName = txtFirstName-&amp;gt;text();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QString lastName = txtLastName-&amp;gt;text();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QString email&amp;nbsp;&amp;nbsp; = txtEmail-&amp;gt;text();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QString cmnts&amp;nbsp;&amp;nbsp; = txtComments-&amp;gt;toPlainText();&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; args &amp;lt;&amp;lt; mrMs &amp;lt;&amp;lt; firstName &amp;lt;&amp;lt; lastName &amp;lt;&amp;lt; email &amp;lt;&amp;lt; cmnts;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; func.call(flashObject, args);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Осталось только написать код слота getUrl:&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;MainWindow::getUrl(NPluginStreamArgs&amp;amp; args)&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; QFile* data =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Courier New;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp;QFile(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Courier New;&quot;&gt;&quot;:/res/FlashForm.swf&quot;&lt;/span&gt;&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; data-&amp;gt;open(QIODevice::ReadOnly);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;&amp;nbsp; args.setIODevice(data);&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Courier New;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Теперь мы получили передачу данных с вкладки Flash App во вкладку Qt App и наоборот.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ1viZxBcea_LZeJ7j2djIyTKmL9rEfWjW1rZPlLUT7i0wiYKKaWFShI2VGx8zZeBbFgryWQnIXBBDAzKboVSJufxQJ_L8OfYAsK8zAb7Qo1spSLEr1-uWgMFWcwIGNO8cC8ICPEAFRZzx/s1600/Flash_Qt-v.html5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ1viZxBcea_LZeJ7j2djIyTKmL9rEfWjW1rZPlLUT7i0wiYKKaWFShI2VGx8zZeBbFgryWQnIXBBDAzKboVSJufxQJ_L8OfYAsK8zAb7Qo1spSLEr1-uWgMFWcwIGNO8cC8ICPEAFRZzx/s640/Flash_Qt-v.html5.png&quot; width=&quot;305&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
Заключение&lt;/h3&gt;
&lt;div&gt;
Что в итоге? Мы увидели, что встроить Flash-приложение в Qt оказалось даже еще проще, чем ролик Silverlight. Со стороны Qt-приложения практически ничего не поменялось, мы только сменили тип объекта с Qtitan::Silverlight на Qtitan::FlashPlayer. Поэтому вы можете разрабатывать интерактивные ролики там где вам удобнее, Microsoft Silverlight или же Adobe Flash - для Qtitan Multimedia разницы нет.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/2493248952605250034/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/11/adobe-flashflex-qt.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2493248952605250034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2493248952605250034'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/11/adobe-flashflex-qt.html' title='Интеграция роликов Adobe Flash/Flex в Qt приложение'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpKBHpFXIuT0w_ZWdeAL7oL3K2UOZNREwjv8qr0OMoXBb0guz5IubdFgPZOr7jSjvs14Yd3GHxgTR2uVMXEakhT-IaXRiZpF-an3VjxtF9LY89CjmSsrNXV_8dklk4pLMsXuoYCLVMgeM3/s72-c/Flash_Qt-v.html1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-2923089643532240780</id><published>2012-10-25T14:29:00.002+06:00</published><updated>2012-10-25T14:52:49.031+06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="qtitan"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><title type='text'>Интеграция Silverlight в Qt приложения (пример использования)</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;В прошлой &lt;a href=&quot;http://qtcoder.blogspot.com/2010/10/silverlight-qt.html&quot; target=&quot;_blank&quot;&gt;статье&lt;/a&gt;&amp;nbsp;об интеграции Silverlight роликов в приложения на Qt, я описал библиотеку Qtitan Multimedia, с помощью которая оная интеграция и выполняется.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Ниже я приведу практический пример использования библиотеки Qtitan Multimedia.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Пример использования&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot;&gt;&lt;span style=&quot;font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;В качестве примера создадим интерактивный баннер на Silverlight и подружим его с Qt приложением. Из приложения мы будем передавать наше имя в Silverlight и оно будет в нем использоваться. А в ролике мы предоставим возможность пользователю проголосовать за любимую технологию и передадим результаты голосования в приложение.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Для этого нам понадобятся:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Microsoft Visual Studio с установленным пакетом Silverlight Tools.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Qt последней версии. Можно использовать бесплатную OpenSource версию, собранную в debug и release версиях.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Qtitan Multimedia. Можно использовать демо версию, которую можно скачать с сайта http://devmachines.com&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Рекомендуемый порядок установки:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Устанавливаем Microsoft Visual Studio.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Устанавливаем &amp;nbsp;Silverlight Tools.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Скачиваем и собираем Qt с помощью компилятора nmake от Visual Studio.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: decimal; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Скачиваем и устанавливаем Qtitan. Устанавливать демо желательно в папку без пробелов, т.е. не в Program Files, а, например, в c:\qtitan.&lt;/span&gt;&lt;/li&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/ol&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;
&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Естественно, если у вас уже есть VS и собранная под нее Qt, то вам достаточно установить Silverlight Tools и Qtitan.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-style: italic; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Создаем Silverlight ролик&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Запускаем Microsoft Visual Web Developer 2008. Создадим новый проект через меню File-&amp;gt;New Project... В диалоге New Project в списке Project types выберем Visual C# -&amp;gt; Silverlight.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/8FWqhaAUARrspwEbRnWuXYWyh2E7c0zINkYcc5GfvbhwV4TME9yi_O7de5GMw5EytobyxxrNtQkKZLJWWdjjXltFccn_FbqsAuz-Xm0vYg-AekN5qzCO3JrlAV4bKg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;http://4.bp.blogspot.com/8FWqhaAUARrspwEbRnWuXYWyh2E7c0zINkYcc5GfvbhwV4TME9yi_O7de5GMw5EytobyxxrNtQkKZLJWWdjjXltFccn_FbqsAuz-Xm0vYg-AekN5qzCO3JrlAV4bKg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Пример для VS 2008&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Следующим шагом нас спросят, создавать ли тестовое приложение ASP.NET, в которое будет встраиваться ролик. Ответим положительно. Visual Studio будет создавать локальный веб-сервер на localhost, размещать на нем страничку со встроенным роликом так, что мы сразу сможем увидеть все сделанные изменения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Итак, &amp;nbsp;у нас в солюшене два проекта, собственно сам ролик и тестовое приложение.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/mzssPdqY4eFMNj9o7IdTucoFNpc585SqotbgYTAQdAe5lzYo2_ueHbWEAqdO-3LcBaAlx_ufYdMmoZ0B3ccR2Ex97PVD7-1jGMLfaPU6Sl4LGC80ijm4y9rnJ5rHCA&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/mzssPdqY4eFMNj9o7IdTucoFNpc585SqotbgYTAQdAe5lzYo2_ueHbWEAqdO-3LcBaAlx_ufYdMmoZ0B3ccR2Ex97PVD7-1jGMLfaPU6Sl4LGC80ijm4y9rnJ5rHCA&quot; width=&quot;201&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;В центральной части проекта у нас окно, разделенное на две части - вид нашего ролика и его XAML код. Создание Silverlight ролика заключается в правке XML-подобного XAML кода. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Давайте отредактируем код XAML. Изменим фон страницы на градиентный - от желтого к красному. Для этого внутрь тега &lt;grid&gt; вставим следующий код:&lt;/grid&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;LayoutRoot&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.Background&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;GradientStop&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Offset&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Yellow&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;GradientStop&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Offset&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Red&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.Background&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;И удалим свойство Background=&quot;White&quot;, задающее белый цвет для фона страницы. Теперь наша страница имеет градиентную заливку, от жёлтого к красному, в качестве фона. &amp;nbsp;Также мы зададим стандартный размер баннера 468 на 60 в теге UserControl.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Теперь вставим надпись, в которой будет отображаться имя пользователя, которое он нам сообщит из Qt приложения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Справа разместим пару элементов управления Radio Button для голосования за любимую технологию.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/Jlrw8MUUFB0uaFDlyisYI0PvNniZi8aoKpPaaMBePrrtnVW2voUIJ3ESg-RqO2qSWaYzcGvOgwktG3Uismj2ytKE0pn1UlVdvpC8bOlO_thI6YGsHcElN96riZGbOg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;53&quot; src=&quot;http://3.bp.blogspot.com/Jlrw8MUUFB0uaFDlyisYI0PvNniZi8aoKpPaaMBePrrtnVW2voUIJ3ESg-RqO2qSWaYzcGvOgwktG3Uismj2ytKE0pn1UlVdvpC8bOlO_thI6YGsHcElN96riZGbOg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Цель нашего баннера проста: поздороваться с пользователем и дать возможность проголосовать за любимую технологию. Выбор технологии будет отправлен в Qt приложение.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Ниже приведен полный XAML код нашего баннера.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;UserControl&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Class&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Banner.Page&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;xmlns&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;xmlns:x&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Width&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;468&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;60&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;LayoutRoot&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.Background&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;GradientStop&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Offset&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Yellow&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;GradientStop&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Offset&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Red&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush.GradientStops&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;LinearGradientBrush&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.Background&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RowDefinition&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;25&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RowDefinition&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;15&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RowDefinition&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;20&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ColumnDefinition&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Width&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;150&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ColumnDefinition&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Width&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;350&quot;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;TextBlock&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Width&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;100&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;20&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Hello,&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;TextBlock&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;textName&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Width&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;100&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Height&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;30&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;UserName&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;TextBlock&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Please vote for your favorite technology&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;0&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RadioButton&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;radFlash&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Adobe Flash&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RadioButton&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;radSilverlight&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Microsoft Silverlight&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;UserControl&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;В этом коде мы добавляем сетку (Grid), размечаем ее и вставляем элементы управления.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Откомпилируем данный код нажав F5. В итоге будет создан файл banner.xap, который и есть наш Silverlight ролик. Размер его меньше 5 Кб. Позже мы поместим этот файл в ресурсы нашего Qt приложения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Создаем Qt приложение&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Начнем новый проект &lt;/span&gt;&lt;span style=&quot;font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Banner&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. Создадим отдельную папку под проект и поместим в нее файл banner.pro:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;TEMPLATE = app&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;CONFIG += msvc2008&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;QTITANDIR = $$(QTITANDIR)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;include&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;($$QTITANDIR/src/shared/shared.pri)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;DESTDIR = $$QTITANDIR/lib&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;DLLDESTDIR = $$QTITANDIR/bin&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;CONFIG(msvc2008):DESTDIR = $$member(DESTDIR, 0)_msvc2008&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;CONFIG(msvc2008):DLLDESTDIR = $$member(DLLDESTDIR, 0)_msvc2008&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;HEADERS&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;= mainwindow.h&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;SOURCES&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;= main.cpp \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&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;mainwindow.cpp&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RESOURCES &amp;nbsp;&amp;nbsp;= banner.qrc&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Проект составлен на основе примера, поставляемого с Qtitan. Вы можете найти примеры в папке Qtitan/demos/media. В данном случае мы используем пример hellosilverlight за основу нашего проекта.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Добавим наш Silverlight ролик banner.xap в качестве ресурса приложения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Для этого в папке проекта создадим папку res и поместим в нее файл banner.xap. В папке проекта создадим файл banner.qrc:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;!DOCTYPE RCC&amp;gt;&amp;lt;RCC version=&quot;1.0&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;qresource&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;file&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;res/banner.xap&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;file&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/qresource&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;/RCC&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Добавим в папку проекта файл main.cpp:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;lt;QApplication&amp;gt;&lt;qapplication&gt;&lt;/qapplication&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;mainwindow.h&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; main(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; argc, &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; *argv[])&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QApplication app(argc, argv);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;MainWindow window;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;window.show();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; app.exec();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;b id=&quot;internal-source-marker_0.5146054173819721&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Это стандартный файл main.cpp, создающий экземпляр QApplication и вызывающий главное окно MainWindow приложения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Теперь напишем файлы mainwindow.h и mainwindow.cpp.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;В файл mainwindow.h подключим файл QtitanMM.h:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: blue; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;lt;QtitanMM.h&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;И добавим указатель на Qtitan::Silverlight в защищенную часть класса MainWindow. Заготовка класса MainWindow пока выглядит так (файл mainwindow.h):&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#ifndef &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;MAINWINDOW_H&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#define&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; MAINWINDOW_H&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;QMainWindow&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;QLineEdit&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;QtitanMM.h&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; MainWindow : &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QMainWindow&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;Q_OBJECT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;MainWindow(QWidget *parent = 0);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; slots:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; clickButton();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; getUrl(NPluginStreamParameters&amp;amp; parameters);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;Qtitan::Silverlight * silverlight_;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QLineEdit * edtName_;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;};&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#endif&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;//MAINWINDOW_H&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Начальная реализация класса (файл mainwindow.cpp):&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; vertical-align: baseline;&quot;&gt;#include&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; vertical-align: baseline;&quot;&gt;&amp;lt;QtGui&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#include&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;mainwindow.h&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;MainWindow::MainWindow(QWidget *parent)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;: QMainWindow(parent)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Центральный объект&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QWidget * widget = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QWidget(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QVBoxLayout * vLayout = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QVBoxLayout;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;widget-&amp;gt;setLayout(vLayout);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;setCentralWidget(widget);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Создаем виджет для ролика&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;silverlight_ = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Qtitan::Silverlight(widget);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Устанавливаем размер&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;silverlight_-&amp;gt;setMinimumSize(468, 60);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;silverlight_-&amp;gt;setSource(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;banner.xap&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Задаем соединение с роликом&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;connect(silverlight_, SIGNAL(getUrl(NPluginStreamParameters&amp;amp;)),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, SLOT(getUrl(NPluginStreamParameters&amp;amp;)));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Активируем ролик&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;silverlight_-&amp;gt;setActive(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Проверяем результат активации&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; (!silverlight_-&amp;gt;isActive())&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Если ролик неактивен собщаем об этом&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;QMessageBox::about(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, tr(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;Hello, Silverlight!&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;tr(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;The &lt;b&gt;Microsoft Silverlight&lt;/b&gt; is not installed at your PC.&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Дополнительные элементы управления&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QLabel &amp;nbsp;&amp;nbsp;* lblName = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QLabel(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;Name: &quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;edtName_ = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QLineEdit(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QPushButton * btnName = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QPushButton(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;Name&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;btnName-&amp;gt;setMaximumWidth(120);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Компонуем объекты&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QHBoxLayout * hLayout = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QHBoxLayout;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;hLayout-&amp;gt;addWidget(lblName);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;hLayout-&amp;gt;addWidget(edtName_);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;vLayout-&amp;gt;addWidget(silverlight_);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;vLayout-&amp;gt;addLayout(hLayout);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;vLayout-&amp;gt;addWidget(btnName, 0, Qt::AlignRight);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;vLayout-&amp;gt;addStretch();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;// Соединение на кнопку&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;connect(btnName, SIGNAL(clicked()), &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, SLOT(clickButton()));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; MainWindow::getUrl(NPluginStreamParameters&amp;amp; parameters)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QFile* data = &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QFile(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;:/res/banner.xap&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;data-&amp;gt;open(QIODevice::ReadOnly);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;parameters.setIODevice(data);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Здесь мы создали проект нашего приложения: сверху баннер, чуть ниже поле ввода для ввода имени и кнопка Name, нажатие которой будет отправлять наше имя в баннер.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Особое внимание стоит уделить строке связывания компонента Qtitan::Silverlight непосредственно с роликом Silverlight. Связь осуществляется стандартным механизмом слот/сигнал:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;connect(silverlight_, SIGNAL(getUrl(NPluginStreamParameters&amp;amp;)),&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, SLOT(getUrl(NPluginStreamParameters&amp;amp;)));&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Через эту связь экземпляр Qtitan::Silverlight получает доступ к ресурсам нашего ролика. &amp;nbsp;Слот &lt;/span&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;getUrl(NPluginStreamParameters&amp;amp;)&lt;/span&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; получает ссылку на &amp;nbsp;объект, в который он передает данные ролика.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Сейчас мы можем запустить наше приложение и посмотреть результат - мы увидим, что ролик удачно интегрировался в приложение.&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/ga-3Q4rtsTDLSRaK0zq6RyecsdPcp37YIyMIA-6uPQ28hpfmVv6AVI4hk6cDCSUl9jQ30bve5D5FqyL-jOXFFMnx65UeTWrOr80p9Xd9x_JPKwNtRVwDqs-2qg5K3A&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;108&quot; src=&quot;http://4.bp.blogspot.com/ga-3Q4rtsTDLSRaK0zq6RyecsdPcp37YIyMIA-6uPQ28hpfmVv6AVI4hk6cDCSUl9jQ30bve5D5FqyL-jOXFFMnx65UeTWrOr80p9Xd9x_JPKwNtRVwDqs-2qg5K3A&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;color: blue; font-family: Courier New; font-size: x-small;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Теперь напишем обработчик для кнопки btnName, чтобы по нажатию введенный текст передавался бы в Silverlight ролик.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Добавим коннект для кнопки в конструктор MainWindow:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;connect(btnName, SIGNAL(clicked()), &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, SLOT(clickButton()));&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;И напишем код обработчика:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; MainWindow::clickButton()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;//Получаем доступ к функциям ролика&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QScriptValue silverlightObject = silverlight_-&amp;gt;pluginScriptValue();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;//Вызываем функция ролика Silverlight и передаем ей в качестве параметра&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;//текст из поля ввода edtName_&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QScriptValue content = silverlightObject.property(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QScriptValue silverlightForm = content.property(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;BannerForm&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QScriptValue func = silverlightForm.property(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;SetUserNameMethod&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;func.call(silverlightForm, QScriptValueList() &amp;lt;&amp;lt; edtName_-&amp;gt;text());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Здесь мы фактически вызываем JavaScript код &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;silverlightObject.content.BannerForm.SetUserNameMethod(&lt;/span&gt;&lt;span style=&quot;color: #a31515; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;И, в принципе, мы могли бы вызвать его сразу, используя метод evaluate() класса QScriptEngine.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Также не забудем объявить слот clickButton() в закрытой части класс MainWindow.&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;protected&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; slots:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; clickButton();&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Чтобы данный код заработал, в ролике Silverlight должны быть зарегистрирован объект BannerForm и метод SetUserNameMethod. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Нам нужно вернуться в проект Silverlight ролика и открыть страницу Page.xaml.cs.&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/JNyoGo8BkxFAGliiZMvsH8fex6PU41jUZ9POXBYaD0G4jeVmPAj0bptAzuGUGPfJ1BhxiqclSxpquUIkk5D2N6TjfqhNukyGf6hbgzov8fcI3dAsIqz2lASNc7swsQ&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/JNyoGo8BkxFAGliiZMvsH8fex6PU41jUZ9POXBYaD0G4jeVmPAj0bptAzuGUGPfJ1BhxiqclSxpquUIkk5D2N6TjfqhNukyGf6hbgzov8fcI3dAsIqz2lASNc7swsQ&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Отредактируем код страницы следующим образом.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Во-первых, добавим строку для доступа к браузеру&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;color: blue; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; System.Windows.Browser;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Во-вторых, перед объявлением класса Page вставим строку &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;[ScriptableType]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Это нужно для того, чтобы можно было зарегистрировать объект BannerForm. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Сама регистрация осуществляется в конструкторе класса Page.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;HtmlPage.RegisterScriptableObject(&lt;/span&gt;&lt;span style=&quot;color: #a31515; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;BannerForm&quot;&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Кроме того нужно зарегистрировать метод SetUserNameMethod. Полный код страницы Page.xaml.cs приведен ниже.&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; System.Windows.Browser;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; banner&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;[ScriptableType]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;partial&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Page&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; : UserControl&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Page&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HtmlPage.RegisterScriptableObject(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;BannerForm&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;[ScriptableMember]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; SetUserNameMethod(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; text)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textName.Text = text;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Откомпилируем проект и скопируем полученный файл banner.xap в ресурсы Qt приложения. Пересоберем приложение и запустим. Теперь, по нажатию кнопки, наше имя, введенное в поле ввода edtName_, будет передано в ролик и будет там отражено.&lt;/span&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/P31X_1ODYCEeynVarrw1juRTGUeUM8L8sS2nN3s_39f0Lxp1x0s9-bPxRGp0s7OwCmYa5Q3ph6FjSiVFYSAUFqtBd4JtWIjSA3EBDBJQxvcnrp5CIqeeWQDL6HcKRQ&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;108&quot; src=&quot;http://2.bp.blogspot.com/P31X_1ODYCEeynVarrw1juRTGUeUM8L8sS2nN3s_39f0Lxp1x0s9-bPxRGp0s7OwCmYa5Q3ph6FjSiVFYSAUFqtBd4JtWIjSA3EBDBJQxvcnrp5CIqeeWQDL6HcKRQ&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Теперь нам нужно получить результаты голосования из Silverlight ролика.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Снова нам придется вернуться к проекту Silverlight ролика и внести в него изменения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Во-первых, нам нужно определить обработчики событий для элементов RadioButton.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Определим обработчики в XAML коде:&lt;/span&gt;&lt;/b&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RadioButton&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;radFlash&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Adobe Flash&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Checked&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Flash_Click&quot;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;RadioButton&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;radSilverlight&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Microsoft Silverlight&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Row&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Column&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Checked&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;=&quot;Silverlight_Click&quot;/&amp;gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;И напишем для них код в файле Page.xaml.cs в теле класса Page:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Flash_Click(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; sender, RoutedEventArgs e)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;HtmlPage.Window.Invoke(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;ShowCustomMessage&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;I vote for Adobe Flash!&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Sliverlight_Click(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; sender, RoutedEventArgs e)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&amp;nbsp;HtmlPage.Window.Invoke(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;ShowCustomMessage&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;I vote for Microsoft Silverlight!&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Arial;&quot;&gt;&lt;span style=&quot;font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Т.е. ролик обращается к некой функции ShowCustomMessage, которая выглядит для него как обычная функция JavaScript. На самом деле, эта функция определена в нашем Qt приложении и мы зарегистрируем ее в ролике прямо из него.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Скомпилируем ролик и добавим его в ресурсы приложения.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Откроем наш Qt проект и добавим в конструктор класса MainWindow строку регистрации функции ShowCustomMessage:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;silverlight_-&amp;gt;registrScriptableFunction(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;ShowCustomMessage&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;, ShowCustomMessage);&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;И определим саму функцию ShowCustomMessage:&lt;/span&gt;&lt;/b&gt;
&lt;/span&gt;&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0px;&quot;&gt;&lt;td style=&quot;border: 1px solid rgb(204, 204, 204); padding: 7px; vertical-align: top;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;QScriptValue MainWindow::ShowCustomMessage(QScriptContext* context, QScriptEngine *)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;{ &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;QMessageBox::information(qApp-&amp;gt;activeWindow(), &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&quot;Vote&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;      context-&amp;gt;argument(0).toString());&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QScriptValue();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;В заголовочном файле mainwindow.h функцию следует объявить статической:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; QScriptValue ShowCustomMessage(QScriptContext *, QScriptEngine *);&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Запускаем наше приложение и голосуем за Silverlight!&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/d1brfjY3ZflKDcMEzkyEF5uSGIXjhBLFagzyH0yxNKZTdwnr0Qit-QzTWp_pBaNuFJFmdECl1qVvXYREtNmQRGu6NZ0HTB8kOg9kYzXC5AG_XGJDf1Ohn9DDpD6Hbg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;165&quot; src=&quot;http://4.bp.blogspot.com/d1brfjY3ZflKDcMEzkyEF5uSGIXjhBLFagzyH0yxNKZTdwnr0Qit-QzTWp_pBaNuFJFmdECl1qVvXYREtNmQRGu6NZ0HTB8kOg9kYzXC5AG_XGJDf1Ohn9DDpD6Hbg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b id=&quot;internal-source-marker_0.3374040019698441&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-weight: bold; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Заключение&lt;/span&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Вот так просто, используя Qtitan Multimedia, мы смогли организовать взаимодействие Qt приложения с роликом Silverlight. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;В следующий раз я расскажу об интеграции в Qt приложение роликов Adobe Flash.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;До скорых встреч.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/2923089643532240780/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/10/silverlight-qt.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2923089643532240780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2923089643532240780'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/10/silverlight-qt.html' title='Интеграция Silverlight в Qt приложения (пример использования)'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/8FWqhaAUARrspwEbRnWuXYWyh2E7c0zINkYcc5GfvbhwV4TME9yi_O7de5GMw5EytobyxxrNtQkKZLJWWdjjXltFccn_FbqsAuz-Xm0vYg-AekN5qzCO3JrlAV4bKg=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-5740534192243632611</id><published>2012-09-26T15:58:00.001+06:00</published><updated>2012-09-27T15:19:23.201+06:00</updated><title type='text'>QZip, OSDab Zip, QuaZip и Microsoft Word 2007</title><content type='html'>Понадобилось мне тут генерить отчет в формате Microsoft Word 2007.&lt;br /&gt;
Файл docx это, как известно, набор xml-файлов и каталогов, пожатых zip-ом.&lt;br /&gt;
Ничтоже сумнящеся, пытаюсь пожать это дело OSDaB Zip - и упс. Word такой файл понимать отказывается. Далее беру QZip. Снова упс. QuaZip - ура, победа.&lt;br /&gt;
То есть, каталог пожатый&amp;nbsp;QuaZip MS Word прекрасно читает, а остальные - увы. Версия zlib одна и та же. В чем причина я пока и не разобрался. Размер файла docx, пожатый разными zip-ами всегда разный.&lt;br /&gt;
До этого генерил отчеты для OpenOffice.org, там формат похож - тоже набор каталогов и xml-файлов пожатый zip. Тогда сжимал OSDaB Zip&#39;ом и OpenOffice Writer читал такой файл без проблем.</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/5740534192243632611/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/09/qzip-osdab-zip-quazip-microsoft-word.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/5740534192243632611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/5740534192243632611'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/09/qzip-osdab-zip-quazip-microsoft-word.html' title='QZip, OSDab Zip, QuaZip и Microsoft Word 2007'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-1597234438190002009</id><published>2012-07-30T15:23:00.002+06:00</published><updated>2012-07-30T15:23:34.788+06:00</updated><title type='text'>QSqlQueryModel - просмотр базы данных с более 10000 записей</title><content type='html'>Стандартный QSqlQueryModel мало пригоден для просмотра больших баз данных. Модель устроена так, что изначально подгружает 256 записей, и по мере прокрутки таблицы вниз подгружает порциями еще по 256 записей. Всё это сильно лагает и на большой БД неюзабельно.&lt;br /&gt;
Можно использовать canFetchMore и fetchMore для загрузки всех данных, но это займет много времени и вдобавок все записи поместятся в память и выгрузка займет приличное время. В итоге - паузы при загрузке и выгрузке данных.&lt;br /&gt;
Но можно использовать курсоры БД, то есть QSqlQuery. Выполнение запроса на выборку (SELECT) занимает немного времени и в итоге у нас есть курсор&amp;nbsp;QSqlQuery, который можно вертеть вперед (next()), назад (prevoius()) и в произвольное место (seek()).&lt;br /&gt;
Так как же&amp;nbsp;организовать&amp;nbsp;быструю табличную навигацию по БД?&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Во-первых, из QTableView нужно выкинуть вертикальный скролл. То есть, задать политику - всегда выключен. Вместо выкинутого скролла ставим свой скроллбар и состыковываем с вьюхой через лэйаут.&lt;br /&gt;
Во-вторых, делаем запрос на количество записей в таблице БД (SELECT (COUNT(*)). Полученное значение присваиваем сколлбару (setMaximum()). Теперь смещение скролла будет означать переход на определенный номер записи. Связываем изменение значения скролла с смещением курсора QSqlQuery с помощью seek(). Начиная с этого значения&amp;nbsp;считываем&amp;nbsp;30 записей и загружаем в QAbstractTableModel.&lt;br /&gt;
Таким образом, в таблице всегда будут только 30 записей, начиная с&amp;nbsp;некоторого&amp;nbsp;значения.&lt;br /&gt;
Скролл при этом не лагает, только иногда запаздывает за мышкой, но это не критично, и возможно, этого можно избежать обрабатывая не все изменения скролла. Например, если юзер зацепил ползунок и яростно тащит его вниз, то можно ему дать это сделать, а уже потом обновить данные в модели. Например, по таймауту - если за 100 мс не произошло изменений скролла - обновить модель. Как-то так.&lt;br /&gt;
&lt;br /&gt;
Тестирование показало приемлемую навигацию с таким способом. Но, надо не забывать о других способах прокрутки данных: прокрутка колесика мышки - события вьюхи wheelEvent() надо перекидывать на скролл. Далее - возможна навигация с клавиатуры - Move Down, Up, PgDown, PgUp. Это тоже надо обрабатывать.&lt;br /&gt;
&lt;br /&gt;
Выставить порядковые номера записей несложно - это значения скролла + 30.&lt;br /&gt;
Магическое число 30 выбрано эмпирически, можно в принципе использовать и 50. Просто есть взять 20, то таблица может быть не вся заполнена и останутся белые области снизу.&lt;br /&gt;
&lt;br /&gt;
О том как вставить данные и обновить таблицу расскажу позже.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/1597234438190002009/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/07/qsqlquerymodel-10000.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/1597234438190002009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/1597234438190002009'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/07/qsqlquerymodel-10000.html' title='QSqlQueryModel - просмотр базы данных с более 10000 записей'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-4896319729881156973</id><published>2012-07-24T12:51:00.001+06:00</published><updated>2023-04-21T12:17:18.397+05:00</updated><title type='text'>Протокол OAuth</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Oauth_logo.svg/180px-Oauth_logo.svg.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Oauth_logo.svg/180px-Oauth_logo.svg.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;b&gt;Цитата из Википедии&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;OAuth&lt;/b&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&amp;nbsp;— открытый протокол&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&quot; style=&quot;background-image: none; color: #0b0080; font-family: sans-serif; font-size: 13px; line-height: 20px; text-decoration: none;&quot; title=&quot;Авторизация&quot;&gt;авторизации&lt;/a&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;, который позволяет предоставить третьей стороне ограниченный доступ к защищенным ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль. Например, пользователь, который хочет предоставить&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C_(%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82)&quot; style=&quot;background-image: none; color: #0b0080; font-family: sans-serif; font-size: 13px; line-height: 20px; text-decoration: none;&quot; title=&quot;Социальная сеть (Интернет)&quot;&gt;сервису социальной сети&lt;/a&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&amp;nbsp;доступ к книге контактов своего&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D1%87%D1%82%D0%B0&quot; style=&quot;background-image: none; color: #0b0080; font-family: sans-serif; font-size: 13px; line-height: 20px; text-decoration: none;&quot; title=&quot;Электронная почта&quot;&gt;почтового аккаунта&lt;/a&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;, не должен сообщать сети свой пароль от почты. Вместо этого он проходит авторизацию непосредственно в почтовом сервисе, который (с разрешения пользователя или администратора сервиса) предоставляет сервису социальной сети полномочия доступа к адресной книге.&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;Я расскажу как использовать этот протокол для отправки изображений в Twitter из десктопного приложения на Qt.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/4896319729881156973/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/07/oauth.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/4896319729881156973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/4896319729881156973'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/07/oauth.html' title='Протокол OAuth'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-7084162299229555912</id><published>2012-06-25T10:24:00.001+06:00</published><updated>2012-06-25T10:24:02.809+06:00</updated><title type='text'>OpenCV преобразование QImage в IplImage</title><content type='html'>&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;IplImage * MainWindow::QImage2IplImage(&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;QImage * image)&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;{&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; IplImage * cvImage = cvCreateImageHeader(cvSize(image-&amp;gt;width(),&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;image-&amp;gt;height()), IPL_DEPTH_8U, 4);&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; cvImage-&amp;gt;imageData = (&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;char&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;*)image-&amp;gt;bits();&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; IplImage* colorImage = cvCreateImage(cvGetSize(cvImage), 8, 3);&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; cvConvertImage(cvImage, colorImage, 0);&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;colorImage;&lt;/span&gt;&lt;br style=&quot;font-family: &#39;Courier New&#39;;&quot; /&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;}&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/7084162299229555912/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-qimage-iplimage.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7084162299229555912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/7084162299229555912'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-qimage-iplimage.html' title='OpenCV преобразование QImage в IplImage'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-2292607183296662540</id><published>2012-06-25T10:22:00.002+06:00</published><updated>2012-06-25T10:31:18.651+06:00</updated><title type='text'>OpenCV создание avi файла из набора кадров</title><content type='html'>&lt;code&gt;&lt;span style=&quot;color: black; font-family: &#39;Courier New&#39;;&quot;&gt;#&lt;span style=&quot;color: blue;&quot;&gt;include&lt;/span&gt; &amp;lt;opencv2/opencv.hpp&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;MainWindow::test()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;double&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;fps = 5.;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; CvSize size = cvSize(219, 187);&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;//Размер картинки&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; CvVideoWriter *writer = cvCreateVideoWriter(&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;// Создаём файл для записи&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&quot;out.avi&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;//CV_FOURCC(&#39;M&#39;,&#39;J&#39;,&#39;P&#39;,&#39;G&#39;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;//CV_FOURCC(&#39;X&#39;,&#39;V&#39;,&#39;I&#39;,&#39;D&#39;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;//CV_FOURCC(&#39;D&#39;,&#39;I&#39;,&#39;V&#39;,&#39;X&#39;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CV_FOURCC(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&#39;F&#39;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&#39;L&#39;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&#39;V&#39;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&#39;1&#39;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;),&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fps,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; IplImage* img = cvLoadImage(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: &#39;Courier New&#39;;&quot;&gt;&quot;Image0.jpg&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;frameCount = 100;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;c = 0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Courier New&#39;;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;(c++, c != frameCount)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; {&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp; cvWriteFrame(writer, img );&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;// Записываем&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; cvReleaseVideoWriter( &amp;amp;writer );&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;// Освобождаем ресурсы&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; cvReleaseImage( &amp;amp;img );&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;}&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/2292607183296662540/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-avi.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2292607183296662540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/2292607183296662540'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-avi.html' title='OpenCV создание avi файла из набора кадров'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2022495993688215761.post-801698542819744295</id><published>2012-06-25T10:19:00.000+06:00</published><updated>2012-06-25T10:19:56.297+06:00</updated><title type='text'>OpenCV подключение в проект Qt</title><content type='html'>&lt;span style=&quot;background-color: white;&quot;&gt;Скачиваем OpenCV&amp;nbsp;&lt;a href=&quot;http://cdnetworks-kr-2.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.1/OpenCV-2.4.1.exe&quot; target=&quot;_blank&quot;&gt;OpenCV-2.4.1.exe&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
Распаковываем&lt;br /&gt;
Правим pro файл&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;# OpenCV&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;OPENCV = D:/opencv&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;OPENCV_LIB = $$OPENCV/build/x86/vc9/lib&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;INCLUDEPATH&amp;nbsp;+= $$OPENCV/build/include/opencv $$OPENCV/build/include&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;QMAKE_LIBDIR += $$OPENCV_LIB&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;CONFIG(debug, debug|release) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; LIBS += $$files($$OPENCV_LIB/*241d.lib)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;} else {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&amp;nbsp; LIBS += $$files($$OPENCV_LIB/*241.lib)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;}&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://qtcoder.blogspot.com/feeds/801698542819744295/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-qt.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/801698542819744295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2022495993688215761/posts/default/801698542819744295'/><link rel='alternate' type='text/html' href='http://qtcoder.blogspot.com/2012/06/opencv-qt.html' title='OpenCV подключение в проект Qt'/><author><name>QtCoder</name><uri>http://www.blogger.com/profile/12700924076588097659</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyHwC1HsXsWRKenfrb7-p0Azb7vL1QMNcTbDVtgX7IiIQOI6jzE1R2Q7HGCVHPXNx4FAFSEaOEB2Opntjr2mCK0NrsTq50lW8VS7GeZTIT2mk4J7TChaftmb3oyBKo4A/s220/Qt_master_logo_RGB_300dpi.jpg'/></author><thr:total>0</thr:total></entry></feed>