<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF92%3A%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD</id>
		<title>LXF92:Закодируй Greenфон - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF92%3A%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;action=history"/>
		<updated>2026-05-13T00:58:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;diff=5043&amp;oldid=prev</id>
		<title>Yaleks: викификация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;diff=5043&amp;oldid=prev"/>
				<updated>2008-07-12T14:19:41Z</updated>
		
		<summary type="html">&lt;p&gt;викификация&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;amp;diff=5043&amp;amp;oldid=5042&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;diff=5042&amp;oldid=prev</id>
		<title>Yaleks: Новая: == Закодируй Greenфон == ''Для разработки вашего первого мобильного приложения не надо ни быть крутым хаке...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF92:%D0%97%D0%B0%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B9_Green%D1%84%D0%BE%D0%BD&amp;diff=5042&amp;oldid=prev"/>
				<updated>2008-07-12T14:18:52Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: == Закодируй Greenфон == &amp;#039;&amp;#039;Для разработки вашего первого мобильного приложения не надо ни быть крутым хаке...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Закодируй Greenфон ==&lt;br /&gt;
''Для разработки вашего первого мобильного приложения не надо ни быть крутым хакером, ни даже иметь сам Greenphone, пишет '''Грэм Моррисон'''.''&lt;br /&gt;
&lt;br /&gt;
Trolltech Greenphone – открытая платформа, и инструменты&lt;br /&gt;
для разработки под нее доступны по лицензии GPL. А значит,&lt;br /&gt;
еще никогда не было так просто создать собственное приложение для мобильного телефона – до того просто, что нам&lt;br /&gt;
хватит трех страниц, чтобы показать это. Наша программа будет всего-навсего пересчитывать сантиметры в дюймы, но ее так же легко можно&lt;br /&gt;
употребить как конвертор валют или расширить любыми способами.&lt;br /&gt;
Знакомство с С++ вам поможет, но если вы таковым не располагаете – вот отличный шанс научиться.&lt;br /&gt;
&lt;br /&gt;
Greenphone использует особую версию Trolletch Qtopia API, у которого много общего с Qt API, используемом для создания KDE-приложений. Community SDK от сообщества Greenphone (http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=22), необходимый для разработки GPL-приложений для Greenphone, представляет собой образ CD.&lt;br /&gt;
Он построен на основе VMware для использования вместе со свободно&lt;br /&gt;
распространяемым VMware Player. Это предустановленный дистрибутив Linux, включающий набор инструментов разработчика GNU, а также&lt;br /&gt;
собственные библиотеки Trolltech, заголовочные файлы и приложения&lt;br /&gt;
с графическим пользовательским интерфейсом. Так как это образ&lt;br /&gt;
VMware, то вам не нужен Linux – VMware Player также доступен и под&lt;br /&gt;
Windows. Но, что более важно, вам не нужен даже Greenphone: Trolltech&lt;br /&gt;
предоставляет собственный «Эмулятор Greenphone», и вы можете&lt;br /&gt;
играть с виртуальным телефоном, не боясь повредить оборудование.&lt;br /&gt;
&lt;br /&gt;
=== Создание среды разработки ===&lt;br /&gt;
Первый шаг – установка Community SDK со скачанного образа CD.&lt;br /&gt;
После этого у вас появится каталог с файлами VMware, которые необходимо загрузить в виртуальную машину. После ее запуска вы увидите&lt;br /&gt;
зеленые тона экрана рабочего стола Trolltech KDE. На нем разбросано несколько иконок, и две из них используются для эмуляции среды Greenphone. Нажмите на иконке Runqvfb, затем на иконке Runqpe.&lt;br /&gt;
Первая иконка запустит виртуальный фрейм-буфер для Greenphone,&lt;br /&gt;
встроенный в графическое представление телефона. Вторая иконка&lt;br /&gt;
запустит ОС Qtopia внутри эмулируемой среды [строго говоря, Qtopia&lt;br /&gt;
не является самостоятельной ОС – она базируется на Linux, – прим.&lt;br /&gt;
ред.]. В результате вы увидите виртуальное представление Greenphone&lt;br /&gt;
на рабочем столе, которое ведет себя как настоящее, когда вы нажимаете на кнопки. (Любители повозиться с оборудованием могут подробнее узнать о Greenphone на сайте http://www.trolltech.com/products/Qtopia/greenphone или в обзоре [[LXF91:Greenphone|LXF91]].)&lt;br /&gt;
&lt;br /&gt;
Виртуальная машина включает каркас для простого приложения&lt;br /&gt;
Greenphone. Вы можете обнаружить его, нажав на иконку Konsole для&lt;br /&gt;
открытия командной строки и набрав cd projects/application для перехода в каталог, содержащий исходный код. Просмотрев содержимое&lt;br /&gt;
каталога, вы увидите исходный код (example.h и example.cpp), пользовательский интерфейс (examplebase.h) и документацию в каталоге&lt;br /&gt;
Help. Только об этих файлах и надо позаботиться при создании собственного приложения.&lt;br /&gt;
&lt;br /&gt;
В командной строке наберите source /opt/Qtopia/SDK/scripts/develx86.sh , чтобы установить переменные окружения для нормальной компиляции примера. Затем потребуется команда qtopiamake, она подготовит исходные файлы примера для механизма сборки Qtopia. После&lt;br /&gt;
этого пробежитесь по знакомым командам make clean, make и make&lt;br /&gt;
install, чтобы собрать и установить пример проекта. После этого необходимо попросить Greenphone обновить свой список приложений, так&lt;br /&gt;
что наберите gph -rescan.&lt;br /&gt;
&lt;br /&gt;
Теперь вы готовы запустить полученное приложение, как с помощью виртуального Greenphone, так и настоящего оборудования, если вы&lt;br /&gt;
его подключили. Просто перейдите в папку Приложения (Applications)&lt;br /&gt;
в телефоне и выберите иконку Example (она выглядит как красный&lt;br /&gt;
знак вопроса на белом фоне). Запустится простое приложение, которое Trolltech включило в состав SDK – и вы сразу же обнаружите, что&lt;br /&gt;
оно не делает ничего. Абсолютно ничего. Все, что можно сделать, это&lt;br /&gt;
нажать на Выход (Quit). Наша задача – заставить программу выполнять&lt;br /&gt;
полезную работу.&lt;br /&gt;
&lt;br /&gt;
=== Проектируем пользовательский интерфейс ===&lt;br /&gt;
Прежде чем добавлять какую-либо функциональность, необходимо&lt;br /&gt;
спроектировать пользовательский интерфейс. Как и для других KDE- и Qt-приложений, для этого есть инструмент Designer, и вы должны&lt;br /&gt;
видеть его иконку на рабочем столе – она похожа на пару штангенциркулей. При первом запуске программа спросит, какой вид формы&lt;br /&gt;
вы хотите спроектировать. Так как мы собираемся загрузить пользовательский интерфейс из каталога примеров Greenphone, то нажмите&lt;br /&gt;
Закрыть (Close).&lt;br /&gt;
&lt;br /&gt;
Если вы никогда не видели Designer, то, возможно, его интерфейс&lt;br /&gt;
вас слегка отпугнёт. Панели разбросаны по всему экрану – он выглядит&lt;br /&gt;
как Gimp на стероидах. Каждая панель заполнена опциями: небольшими окошками и выпадающими меню. Вам надо отыскать опцию Open&lt;br /&gt;
Form (Открыть форму) в меню File (Файл). Далее выберите Projects&lt;br /&gt;
(Проекты) &amp;gt; Application (Приложение), и откройте затаившийся там&lt;br /&gt;
файл examplebase.ui. Теперь вы должны узреть интерфейс нашего пустого приложения для Greenphone.&lt;br /&gt;
&lt;br /&gt;
Сейчас нам необходимо создать интерфейс пользователя для программы-конвертера. Нажмите на текст внутри окна, затем щелкните&lt;br /&gt;
правой кнопкой и выберите Break Layout (Разбить компоновку) из меню&lt;br /&gt;
Form (Форма). Таким образом мы разблокируем компоненты внутри&lt;br /&gt;
окна и сможем передвигать их и добавлять новые. Нам понадобятся&lt;br /&gt;
одно поле ввода, которое будет принимать входную величину, и два&lt;br /&gt;
выпадающих меню для выбора входного и выходного формата. Также&lt;br /&gt;
потребуется поле вывода для отображения конечного результата и&lt;br /&gt;
кнопка для осуществления преобразования.&lt;br /&gt;
&lt;br /&gt;
Чтобы добавить эти компоненты, перетащите их из панели компонентов, расположенной слева на экране. Из раздела Display Widgets&lt;br /&gt;
нам понадобятся четыре метки и один LCD Number для вывода результата. Из раздела Input Widgets выберите два Combo Box и один компонент Line Edit для ввода значения. Наконец, нам нужна кнопка Push&lt;br /&gt;
Button из списка Buttons.&lt;br /&gt;
&lt;br /&gt;
Выделите исходный текст примера и нажмите Delete, чтобы удалить&lt;br /&gt;
его с формы – мы оставим только кнопку Quit. Можете расположить&lt;br /&gt;
компоненты по своему вкусу. Текст на трех метках изменим на Amount,&lt;br /&gt;
From и To соответственно (щелкните правой кнопкой мыши и выберите Change text (Сменить текст)). Если вы хотите выровнять текст по&lt;br /&gt;
центру, то выберите свой компонент и свойство alignment из Property&lt;br /&gt;
Editor (Редактор Свойств) и измените горизонтальное выравнивание&lt;br /&gt;
на AlignHCenter.&lt;br /&gt;
&lt;br /&gt;
Последнюю метку можно использовать как заголовок для приложения. Размер шрифта для этого компонента может быть выбран из&lt;br /&gt;
списка шрифтов в редакторе свойств. Вам также потребуется изменить&lt;br /&gt;
текст на Push Button, и добавить пункты преобразования в Combo Box’ы&lt;br /&gt;
(щелкните правой кнопкой и выберите Edit items (Редактировать элементы)). Для начала добавьте inches и cm.&lt;br /&gt;
&lt;br /&gt;
Добавив и отредактировав все необходимые компоненты, пробегитесь по руководству расположения компонентов на следующей странице, затем сохраните результаты, переписав оригинальные файлы. Если у вас не хватает прав это сделать, то откройте Konsole и наберите &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo chmod -R 777 projects&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Врезка|&lt;br /&gt;
|Заголовок=Шаг за шагом: Располагаем компоненты в Designer&lt;br /&gt;
|Содержание=&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Изображение:Img 92 52 3.png|; 1 Группируем компоненты : Выбрав все компоненты для вашего приложения в Designer, расположите их, как вам нравится. Далее нажмите Shift и выберите каждый компонент с меткой, потом выберите Layout Vertically из меню Form. В результате создастся группа компонентов с менеджером компоновки, который будет видеть их как один компонент.&lt;br /&gt;
&lt;br /&gt;
Изображение:Img 92 52 4.png|; 2 Выравниваем Designer : использует набор взвешенных ‘разделителей’ для форматирования раскладки. Перетащите горизонтальный разделитель из палитры инструментов в пространство между каждым компонентом, располагающимся в каждой строке. Далее выберите все разделители и компоненты в каждой строке и выберите Layout Horizontally (Расположить горизонтально) из меню Form.&lt;br /&gt;
&lt;br /&gt;
Изображение:Img 92 52 5.png|; 3 Делаем сетку : Собрав все компоненты в группы и расположив их горизонтально по строкам, выберите Lay Out In A Grid из меню Form. Так вы добавите ваши группы компонентов в матрицу, которая будет масштабироваться в зависимости от размера и разрешения используемого экрана. Если вы захотите что-то поменять, отмените компоновку – выберите Break Layout.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Пишем код ===&lt;br /&gt;
Пользовательский интерфейс спроектирован; время добавлять функции, чтобы конвертор обрел законченную форму. Мы можем это сделать, добавив одну функцию в наш пример. Откройте файл example.h и&lt;br /&gt;
добавьте ‘void conVert();’ сразу под методом ‘void goodbye();’ в разделе&lt;br /&gt;
‘private slots’. Именно эта функция будет выполняться, когда вы нажмёте на кнопку Convert (Преобразовать) в приложении.&lt;br /&gt;
&lt;br /&gt;
Далее, откройте файл example.cpp и добавьте&lt;br /&gt;
следующий код сразу за строкой, начинающейся&lt;br /&gt;
с ‘connect’:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;connect (pushButton,SIGNAL(clicked()),this,SLOT(conVert()));&amp;lt;/source&amp;gt;&lt;br /&gt;
Это знаменитый механизм сигналов и слотов от Trolltech, и мы здесь сообщаем приложению, чтобы при нажатии на кнопку&lt;br /&gt;
pushButton выполнялась функция conVert:&lt;br /&gt;
clicked – это сигнал, а conVert – это слот.&lt;br /&gt;
Необходимо добавить код для слота,&lt;br /&gt;
который будет выполнять преобразование, а для этого нужно подключить заголовочные файлы для каждого используемого компонента.&lt;br /&gt;
Добавьте в начало файла следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;qstring.h&amp;gt;&lt;br /&gt;
#include &amp;lt;qlineedit.h&amp;gt;&lt;br /&gt;
#include &amp;lt;qlcdnumber.h&amp;gt;&lt;br /&gt;
#include &amp;lt;qcombobox.h&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Наконец, добавим функцию преобразования – припишем следующий код в&lt;br /&gt;
конец файла example.cpp:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp-qt&amp;quot;&amp;gt;&lt;br /&gt;
void Example::conVert()&lt;br /&gt;
{&lt;br /&gt;
 QString amount_str = lineEdit-&amp;gt;text();&lt;br /&gt;
 float amount = amount_str.toFloat();&lt;br /&gt;
 switch (comboBox-&amp;gt;currentIndex()){&lt;br /&gt;
  case 0:&lt;br /&gt;
   if (comboBox_2-&amp;gt;currentIndex()) == 1)&lt;br /&gt;
   amount = amount * 0.3937;&lt;br /&gt;
   break;&lt;br /&gt;
 }&lt;br /&gt;
 lcdNumber-&amp;gt;display(amount);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Наберите make, make install и gph -rescan, чтобы установить вашу&lt;br /&gt;
новую программу, и запустите ее из списка приложений (она все еще&lt;br /&gt;
называется Example). Вкратце, мы делаем вот что: считываем значение&lt;br /&gt;
из поля ввода и преобразуем его в число, а потом проверяем значения в обоих выпадающих списках. Мы предполагаем, что первый вход&lt;br /&gt;
будет cm, а второй – inches. Если cm выбрано в качестве первой записи,&lt;br /&gt;
то выражение if проверит значение во втором Combo box. Если это ‘1’,&lt;br /&gt;
то это должно быть, дюймы, и мы производим преобразование величины, полученной из поля ввода. Наконец, мы посылаем это значение&lt;br /&gt;
на LCD-дисплей приложения.&lt;br /&gt;
&lt;br /&gt;
Очевидно, надо еще немало потрудиться, прежде чем программа&lt;br /&gt;
станет действительно полезной, но она функционирует. И к тому же&lt;br /&gt;
занимает меньше десяти строк! Вот краткий список возможных нововведений. Добавьте другие возможности конвертации – дюймы в сантиметры, например, или метры в ярды. Потом проверьте корректность&lt;br /&gt;
ввода и отобразите ошибку, если введенное значение не есть число. Вы&lt;br /&gt;
даже можете добавить возможность сохранять наиболее популярные&lt;br /&gt;
преобразования.&lt;br /&gt;
&lt;br /&gt;
Если вы закончите этот проект, мы будем рады увидеть результаты.&lt;br /&gt;
Пошлите нам ваш исходный код ([mailto:letters@linuxformat.ru letters@linuxformat.ru]), и мы положим&lt;br /&gt;
его на наш DVD.&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>