На первый взгдя такой стиль описания функций может показаться странным, но он улучшает читабельность программы. К тому же можно написать коментарий к каждому аргументу функции. Функция g_print() выводит текст в консоль при работе дебаггера. Очевидно, что аргументом этой функции является выводимый текст.
Правило 38. Используйте штриховую линию для зрительного разделения подпрограмм из [2]. Штриховая линия помагает визуально отделить функции друг от друга, и улучшает читабельность программы.
Также примечательно обратить внимание на правило 42. Выравнивайте скобки вертикально по левой границе [2]. На первый взгляд стиль Кэрнигана может показаться удобным, но это оказывается наоборот, когда размер текста программы увеличивается.
Продолжаем. Событие, закрытия окна:
//——————————————————————————— static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data )
Функция gtk_main_quit() выполняет выходи из приложения. После выполнения этого кода, на экран дбеггера выведется текст сообщения и приложение закончит свою работу.
Как создать программный RAID на Linux Ubuntu
Теперь пишем функцию входа в приложение:
//——————————————————————————— int main( int argc, char *argv[] )
Весь нижеприведнный код помещать внутри этой функци.
GtkWidget *window; // windows object GtkWidget *button; // button on the canvas
Первая строка создает объект окна, вторая элемент управления кнопка.
Далее необходимо обработать аргументы запуска программы, если таковы были:
gtk_init( argv );
Теперь выполняем код создания окна, непосредственно:
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
После создания окна необходимо прописать все действия необходимых событий.
Вызов функции delete_event() при закрытии окна
g_signal_connect( window, «delete-event», G_CALLBACK( delete_event ), NULL );
Функция g_signal_connect() используется для обработки событий. Перывый аргумент указывает соыбтие какого элемента упрваления следует отлавливать. Второй аргумент указывает, какое событи необходимо обработать, в нашем случае это уничтожение окна. Третий — указывает на функцию, вызываемую при возникновении события. Четвертый — указатель на данные передваемые вызываемой функции.
Вы наверняка заметили, что у hello() и delete_event() есть аргумент gpointer data. Вот именно в этот аргумент передаются данные.
Может возникнуть вопрос, — «как это окно является элементом управления, ведь window — это окно?». Вообще говоря, все элемнты управления, кнопки, скроллбары, переключатели и т.д., в том числе и окна воспринимаются как окна. Так что, в принципе их можно рассматривать как одно и то же.
Теперь делаем границу 10 пикселей от краев окна:
gtk_container_set_border_width( GTK_CONTAINER( window ), 10 );
Создаем кнопку:
button = gtk_button_new_with_label( «Hello world» );
Как вы уже смогли понять, вышеуказання функция создает кнопку с меткой «Hello World».
Изменение и создание unit systemd. Как написать свою службу в Linux?
Теперь опишем обработку сигнала нажатия кнопки:
g_signal_connect( button, «clicked», G_CALLBACK( callback ), NULL );
Далее, добавляем созданную кнопку на окно:
gtk_container_add( GTK_CONTAINER( window ), button );
Отображем кнопку и окно:
gtk_widget_show( button ); gtk_widget_show( window );
Затем вызываем функцию, отлавилвающую все события окна. По сути дела, функция gtk_main() и запускает работу приложения.
gtk_main();
Ну и на последок возвращаем ноль, при оконочании работы приложения:
return 0;
Сохраняем файл под именем «base.cpp». Теперь нам необходимо скомпелировать наше приложение с возможностью отладки. Делается это так:
gcc -g base.cpp -o base `pkg-config —cflags —libs gtk+-2.0`
Есть два замечания. Первое, парамент -g нужно ставить перед именем исходно файла, в противном случае компилятор просто выдаст ошибку. Второе — ковычки нужно использовать именно такие, как показано в строке выше. Если использовать символ single quote, компиляции не будет.
Теперь запускаем программу удобным для вас способом, и наслаждаемся своим произведением искусства.
Источник: bohdankornienko.blogspot.com
Программирование в Linux для чайников
В Linux есть превосходная среда разработки прикладных программ Gambas.
Немного о среде программирования Gambas. Язык и среда программирования созданы молодым французом Benoit Minisini из предместий Парижа для собственного удовольствия, которое он получает как от создания компиляторов, так и от игры на флейте, и от обучения актерскому мастерству, и от работы в качестве профессионального программиста.
Как любая программа, предназначенная к работе в составе операционной системы, Gambas поддерживает привычный для пользователя интерфейс — ту графическую пользовательскую среду, а сегодняшние операционные системы не обходятся без нее, которая привычна для пользователя, которая помогает ему быстро найти нужный раздел в меню, быстро начать работу над собственной задачей.
Пункт меню File, который обычно служит для работы с файлами, в данном случае служит для работы с файлами проекта: New project. (создание нового проекта), Open project. (открыть проект), Open recent (открыть недавний проект), Open example (открыть пример), Save project (сохранить проект), Quit (и выйти).
Для работы над проектом, служит раздел Project:
Это, соответственно, компиляция файла, компиляция проекта, создание исполняемого файла, создание архива исходного текста, создание установочного пакета, свойства проекта, очистка и обновление проекта.
Два пункта меню могут быть непривычны для пользователей Windows – создание архива исходных текстов и установочного пакета. Но не следует забывать, что и программы, и сама операционная система Linux всегда существуют в виде открытых исходных кодов. В Linux можно установить программу двумя способами, либо используя исходный код и средства операционной системы для компиляции и установки программы, либо используя готовый установочный пакет, подобный Setup в Windows. Правда, в разных дистрибутивах Linux такой установочный пакет может быть разным, и не всегда его можно установить, дважды щелкнув мышкой по установочному пакету.
Следующий пункт меню относится к отладчику вновь создаваемой программы на Gambas, и имеет более или менее стандартный набор средств отладки, таких как запуск, пауза, остановка работающей программы, шаг программы и передвижение вперед, и очистку всех точек остановки.
Далее следуют разделы вида — View (открывающий и закрывающие все окна диалога рабочей области), инструментов (Tools) и подсказок (?). В последнем разделе достаточно подробный Help browser, основанный на Wiki в последней версии программы.
Основная инструментальная панель, как это принято, повторяет наиболее часто используемые разделы основного меню, имеет всплывающие подсказки назначения клавиш.
Графическая работа над формой проекта и кодом программы может вестись быстрым переключением с помощью ярлычков, на рисунке ниже Fmain.form и Fmain.class, щелкая мышкой по которым попадаешь в графический редактор или редактор кода. Каждый из них имеет свое основное инструментальное меню. На рисунке ниже – инструментальное меню графического редактора.
Кроме обычных средств, повторяющих средства основного меню, таких как сохранение и обновление, откат и возврат, удаление и вставки из буфера, панель имеет и некоторые специфические компоненты, такие как вход в редактор меню. Ведь почти все формы, которые при работе программы станут окнами программы, должны иметь основное меню. Именно редактор меню позволяет создавать иерархию основного меню с его разделами и подменю.
По мере создания сложного проекта со множеством форм и собственных классов, можно использовать окно «дерева» проекта.
Запускаем Gambas, который находится в разделе Программирование основного меню Приложения:
В разделах, кроме традиционных и необходимых действий, таких как: создать новый проект, открыть существующий, использовать недавно использовавшийся проект, есть раздел примеров (Examples). Там находится очень много примеров, ими можно пользоваться при работе над собственными проектами.
Чтобы создать новый проект выбираем New project.
Открывается диалог, в котором можно ввести название проекта, его заголовок, указать место, где проект будет располагаться. Gambas хранит все, что относится к проекту, в заданной директории, которая будет носить имя проекта. Для перемещения по диалогу достаточно нажимать клавишу Next, но в самом начале следует выбрать, какого рода проект вы намерены создать. На выбор три варианта – графический проект, терминальный проект, использование копии существующего (вашего или нет) проекта
Выбираем, к примеру, графический проект.
Щелкнув по клавише OK, появляется форма и редактор программы. На форме, видимо, можно будет разместить разные кнопочки, окошки и другие средства программы. А в редакторе поместится все то, что и будет кодом программы.
Форма, как и многие элементы управления, имеет свойство Text, это текст, который появится вместо надписи Form1.Form при выполнении программы. Если щ елкнуть по форме правой клавишей мышки, в выпадающем меню появится пункт Code, который вызывает редактор кода.
Отдельную область занимает инструментарий проекта – Toolbox. Построенный аналогично рабочей области, он тоже имеет различные ярлычки, открывающие страницы, на которых размещаются средства создания проекта.
Окно списка доступных компонентов Gambas
Программа интуитивно понятна и очень удобна, к тому же, благодаря всплавающим подсказкам, сама помогает писать вам программный код.
Источник: pro-spo.ru
Как создать файл .Desktop для установленного приложения в Linux
Файл .desktop — это ярлык, используемый для запуска приложений в Linux. Без файла .desktop ваше приложение не будет отображаться в списке приложений, и вы не сможете запустить его с помощью сторонних проигрывателей, таких как Synapse и Albert.
Большинство приложений при установке автоматически создают файл .desktop и помещают их в список приложений для быстрого доступа к ним. Однако, если вы скомпилируете программу из источника или загрузите приложение в формате архива, это может быть не так, и вам, возможно, придется открывать терминал для выполнения двоичного файла каждый раз, когда вы хотите их использовать. Очевидно, что это может стать очень утомительным и раздражающим шагом.
В этой статье объясняется, как создать файл .desktop для любого используемого вами приложения, которое можно запустить из меню «Приложения».
Как создать настольный лаунчер
Файл «.desktop» — это, по сути, простой текстовый файл, содержащий информацию о программе. Обычно он помещается в «~ / .local / share / applications» или «/ usr / share / applications /» в зависимости от того, хотите ли вы, чтобы программа запуска имела доступ к нему только в локальной учетной записи или для всех. Если вы перейдете в любой каталог в файловом менеджере, вы увидите очень мало файлов «.desktop», совместимых с приложениями, установленными на вашем компьютере.
В демонстрационных целях я собираюсь создать файл .desktop для Super Tux Kart, гоночной игры на картинге, в которую я люблю иногда играть. Его версия доступна в репозиториях ubuntu, но часто отстает от последней стабильной версии.
Единственный способ получить самую последнюю и лучшую версию — это загрузить архив. деготь , и извлеките файл, который будет запускать игру.
Вы можете следовать этому вместе с любой программой, для которой хотите создать средство запуска, и она должна работать таким же образом.
Примечание. Следующие шаги предполагают, что у вас есть архив программы, для которой вы хотите создать средство запуска в папке «Загрузки».
1. Перейдите в каталог, в котором сохранен архив, щелкните его правой кнопкой мыши и выберите «Извлечь сюда».
2. После завершения извлечения перейдите во вновь созданную папку и найдите исполняемый файл .exe. Там, где вы его найдете, щелкните правой кнопкой мыши «Выполнить», чтобы запустить программу, просто чтобы убедиться, что она работает.
3. В некоторых случаях вы не увидите опцию «Играть» в меню. Часто файл реализации представляет собой текстовый файл. Вы можете получить информацию об этом, выполнив его через терминал, или, если вы используете GNOME, щелкните меню файла на верхней панели и выберите «Настройки».
4. Выберите вкладку «Поведение» и выберите параметр «Запустить» в разделе «Исполняемые текстовые файлы». Теперь при щелчке правой кнопкой мыши исполняемого текстового файла должна появиться опция «Выполнить».
5. Если при запуске вы подтвердили, что приложение работает, вы можете выйти из него. Затем запустите текстовый редактор и вставьте следующее в пустой текстовый файл:
[Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Terminal=false Exec=/path/to/executable Name=Name of Application Icon=/path/to/icon
Вам нужно изменить поле «Exec» на путь к исполняемому файлу и «Name» на имя приложения. Большинство программ предоставляют код где-нибудь в архиве, так что не забудьте включить и его. В моем случае файл запуска для Super Tux Kart выглядит так:
6. Сохраните файл в папке «~ / .local / share / applications» как «application-name.desktop». Папка «.local» — это скрытая папка в вашем домашнем каталоге, и у вас будет включен режим «Показать скрытые файлы» для ее просмотра. Если вы хотите, чтобы он был доступен для всех, выполните в терминале следующую команду:
sudo mv ~/.local/share/applications/ /usr/share/applications/
Конечно, не забудьте поменять на фактическое имя файла .desktop.
7. После этого просто откройте список приложений на рабочем столе, и приложение будет полностью готово для использования.
Описанный здесь метод должен работать во всех основных операционных системах на базе Linux. А вот еще один снимок, показывающий Super Tox Kart.
Не стесняйтесь оставлять комментарии ниже, если вы нашли этот урок полезным.
Источник: www.dz-techs.com