Поиск по блогу
понедельник, 30 апреля 2012 г.
среда, 25 мая 2011 г.
Создание графической программы (Встроенный)
Введение
О библиотеках. Необходимой областью имён (namespace) будет Gtk. Для добавления нового пространства имён надо использовать команду "using".
Пример Кода
Сам код примера, после кода я объясню кратенько что, да как.
using Gtk;
public class GUISimple1 {
private static void action_function(Button source) {
// Задаём новое название кнопке
source.label = "Кнопка была нажата";
}
public static int main(string[] args) {
// Инициализация GTK
Gtk.init (ref args);
// Создание переменной-окна
var window = new Window(WindowType.TOPLEVEL);
// Задаём заголовок окна
window.title = "Программа, Програмочка моя";
// Задаём размер окна
window.set_default_size (300, 50);
// Задаём положение на экране
window.position = WindowPosition.CENTER;
// Эта строка задаёт выключение программы по нажати на "выход"
window.destroy.connect(Gtk.main_quit);
// Создаём переменную-кнопку
var button = new Button.with_label("Нажмите, Или не жмите... Как хотите :)");
// Задаём функцию, которая будет выполнятся по нажати на кнопку
button.clicked.connect(action_function);
// Вставляем кнопку в окно, важно: в один контейнер можно вставить только один объект
window.add(button);
// Показать окно
window.show_all();
// Цикл GTK
Gtk.main();
return 0;
}
}
Разбор полётов
Умозаключения
Для компиляции программы нужно использовать пакет gtk+-3.0.
Компиляция: "valac --pkg gtk+-3.0 GUISimple1.vala"
суббота, 30 апреля 2011 г.
Резкое погружение
Введение
Здравствуйте, я очень вас прошу простить меня за сложность того примера который составил, и за малую долю разъяснений. Я рассчитываю что те кто будет рассматривать этот язык программирования, должен представлять себе что такое ООП (Объектно Ориентированное Программирование).
Пример Кода
Пример представляет из себя не оптимизированный, демонстрационный пример.
Сам код примера, после кода я объясню кратенько что, да как.
namespace org {
namespace newnauka {
namespace examples {
public class SimpleExample2 {
private int property_x = 0;
private int property_y = 1;
private int property_z = 2;
public SimpleExample2.first(int x) {
this.property_x = x;
}
public SimpleExample2.second(int x, int y) {
this.property_x = x;
this.property_y = y;
}
public SimpleExample2.third(int x, int y, int z) {
this.property_x = x;
this.property_y = y;
this.property_z = z;
}
public int X {
get { return property_x; }
set { property_x = value; }
}
public int Y {
get { return property_y; }
set { property_y = value; }
}
public int Z {
get { return property_z; }
set { property_z = value; }
}
public int calculateALL() {
return X * Y * Z;
}
static int main(string[] args) {
SimpleExample2 example = new SimpleExample2.second(23, 54);
stdout.printf("Первый результат:\t%d\n", example.calculateALL());
example.Z = 100;
stdout.printf("Второй результат:\t%d\n", example.calculateALL());
return 0;
}
}
}
}
}
Разбор полётов
public int X {
get { return property_x; }
set { property_x = value; }
}
public int X {
get { return property_x; }
}
Это описание простейшего метода (Функции):
public int calculateALL() {
return X * Y * Z;
}
Умозаключения
Данный пример поможет более-менее понять суть программирования в классах под Vala. Этот пример сложен, однако, люди знакомые с ООП, не увидят здесь затруднительного материала.
Хочу напомнить, что синтаксис в Vala и идея построения используется языка "C#".
Эта сухая и неинтересная теория скоро сойдёт на нет, и следующие свои посты я уже буду писать в более интересном ключе.
Я постараюсь осветить вопросы:
- Создания Графических программ (С внешним и Внутренним интерфейсом)
- Работа с "Коллекциями"
- Создание своих библиотек
- Создание приложений сразу под Windows и Linux
- Рисование на "Холсте"
- Работа с БД
пятница, 29 апреля 2011 г.
Самое начало
Во первых скажу что я использую Linux Debian wheezy/sid.
И хочу подметить что буду рассказывать упираясь именно на эту замечательную версию Линукса.
Подготовка
Я вам настоятельно рекомендую установить пакеты:
- valac - компилятор Vala
- gtk+-3.0 - графические библиотеки gtk3.0
- gedit - программа-текстовый редактор для удобства написания программ
bash# su
bash# apt-get install valac gtk+-3.0 gedit
Так, теперь о удобстве работы с компилятором "valac" нам необходимо настроить "gedit"
Запускаем "gedit":
#!/bin/bash
cd "$GEDIT_CURRENT_DOCUMENT_DIR";
valac --pkg gtk+-3.0 --pkg gmodule-2.0 --pkg posix "$GEDIT_CURRENT_DOCUMENT_NAME";
./${GEDIT_CURRENT_DOCUMENT_NAME%%.*}
Начало
Теперь мы можем перейти к программированию.
Нам необходимо научится писать хотя бы самые просты программы на "vala". Нет ничего проще чем создать программу для вывода сообщения с приветом.
// Простой пример самой простой программы. "Привет друг!" ("Hello World!")
int main(string[] args) {
stdout.printf("Привет Друг!\n");
return 0;
}
Этот код аналогичен тем что пишутся на "C#" и "C++".
int - здесь в этом месте означает что данная функция должна вернуть целое число.
main - это название функции (Обязательно именно main, потому что это точка входа в любую программу). После имени любой функции обязаны идти, пусть даже пустые, открывающая и закрывающие круглые скобки.
string[] args - Это массив строк с именем args, сюда обычно приходят аргументы командной строки. В данной программе нужно просто для проформы.
stdout.printf("Привет Друг!\n"); - это функция (метод) стандартного вывода (В консоль (В чёрный экран)), она выводит что-то в Двойных кавычках на консоль.
return 0; - это код возврата из функции со значением 0. Здесь нужно для проформы.
Прошу прощения
Я начну освещать с самых азов языка "Vala"
среда, 14 октября 2009 г.
Кратенько о Блоге и его тематике
О языке Vala я узнал случайно, натолкнувшись на ссылку: http://live.gnome.org/Vala. В чём же заключается на мой взгляд "прелесть" данного языке?!
Этот язык привлёк меня сразу несколькими особенностями:
1) Это язык программирования для Линукса - разработанный специально для Линукса (Ну это не исключает возможность его использования на других платформах)
2) Этот язык можно отнести к разряду "Высочайшие" языки программирования, как я их иногда называю. Под "Высочайшими языками программирования" я подразумеваю языки который обладают всем потенциалом ООП. То есть Java, C# и т.д.
3) Синтаксис этого языка практически полностью идентичен синтаксису C#.
4) Программа написанная на этом языке не компилируется в промежуточный код, который требует своей собственной виртуальной машины, код написанный на этом языке транслируется в C и тут же собирается в Исполняемый код.
5) Язык ориентирован на работу с GTK+, GDK и т.д. библиотеками.
Имеется пару минусов конечно. Например нет пока ещё продуманной удобной IDE, хотя она уже разрабатывается, и находится на стадии "текстовый редактор с кнопочками компилировать/выполнить". Когда имеется какая-то ошибка - отладка идёт чуть более сложным образом, потому как если вы допустили совсем глупую ошибку, он может начать лезть в C-шный код, и выдавать вам ошибки сборки C-шного кода. Это чуточку неудобно.
Однако, благодаря этому языку, строить теперь - простые, быстрые, удобные программы с графикой стало неимоверно просто. Правда нужно понимать что если ты проектируешь на java используя классы которые идут в комплекте с JDK, то в Vala при установке этого языка ставятся только основные классы работы с графикой, и скорее всего для работы с какими-то специфическими библиотеками типа Alsa, libnotify и т.д. вам будет необходимо поставить их исходные коды (Но всё это не создаёт сложностей, ибо все они имеются в стандартных репозиториях).
Теперь о IDE
На данный момент я знаю о нескольких видов IDE для Vala.
1) Val(a)IDE (valide). - Этим пользуюсь Я.
2) Дополнение к Eclipse.
3) Дополнение для Gedit.
4) Дополнение для Anjuta.
5) И привязка Vala к MonoDevelop.
Я пользуюсь Valide, потому что он выглядит симпатично + ничего лишнего, удобные кнопки Compile и Выполнить.
Но у него есть неприятная вещь, нету автозаполнения, то есть когда я хочу посмотреть какие методы и свойства имеются у того или иного объекта, мне приходится лезть на, кстати весьма полезный, ресурс http://www.valadoc.org/.
Полезные ссылки
Официальная страничка разработчиков: http://live.gnome.org/Vala
Примеры: http://live.gnome.org/Vala/GTKSample
ОЯень полезная документация: http://www.valadoc.org/
Кому это нужно, разработка на Vala под Windows: http://live.gnome.org/Vala/ValaOnWindows
Крупное описание для профессионалов: http://rodney.id.au/dev/vala/hackers.html
И под конец этого сообщения хотел бы сказать что помимо того что можно разрабатывать под Linux Desktop, с помощью Vala можно разрабатывать и для Linux Mobile (Maemo). Специально для этого там имеются необходимые библиотеки (например Hildon).