Pull to refresh

Создаем приложение используя GTK в Линуксе

Разрабатывать приложения в Линуксе можно с помощью фреймворка GTK. Эта библиотека предназначенная для построения графического интерфейса пользователя. GTK — это свободное программное обеспечение, которое распространяется по лицензии GNU LGPL, что позволяет создавать как бесплатные так и коммерческие приложения.

С документациею и описанием библиотеки, Вы можете ознакомиться по следующей ссылке: https://www.gtk.org

Перед написанием приложения необходимо подготовить среду разработки. Для этих целей буду использовать ОС Ubuntu 22.04. Так как приложение будет разрабатываться на языке программирования Си необходимо установить необходимые пакеты и компилятор.

Откройте терминал от имени пользователя root и введите следующую команду:

sudo apt-get install build-essential

Также нам необходимо установить пакеты GTK для разработки приложения. Вводим следующую команду в терминале:

sudo apt-get install -y libgtk-3-dev

Теперь все готово для написания первого приложения. Открываем любой текстовый редактор и пишем следующий код:

#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
	GtkWidget *window;
	gtk_init(&argc, &argv);
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_widget_show(window);
	gtk_main ();
	return 0;
}

Этот код создает окно. Но прежде чем выполнить приложение, давайте разберемся немного с кодом.
#include <gtk/gtk.h> - здесь мы подключаем библиотеку gtk. Без этой библиотеки не будет работать графическое окно и мы не сможем запустить приложение;
GtkWidget *window; - задаем имя/метку окна;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - эта строка создает стандартное окно с рамкой;
gtk_widget_show(window); - отображаем окно на дисплее.

Теперь давайте запустим приложение. Я сохранил код приложения в файле ex1.c в домашней папки.
Открывает терминал и вводим следующие команды:

gcc ex1.c -o ex1 `pkg-config --cflags --libs gtk+-3.0

./ex1

Теперь давайте улучшим код и создадим текстовую метку.

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
	GtkWidget *window;
	
	GtkWidget *label1;
	
	gtk_init(&argc, &argv);
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	
	label1 = gtk_label_new("Hello! My first Program");
	
	gtk_container_add(GTK_CONTAINER(window), label1);
	
	gtk_widget_show(label1);
	gtk_widget_show(window);
	gtk_main ();
	return 0;
}

GtkWidget *label1; - задаем имя текстовой метки;
label1 = gtk_label_new("Hello! My first Program"); - создаем текстовую метку;
gtk_container_add(GTK_CONTAINER(window), label1); - эта строка кода добавляет метку в контейнер;
gtk_widget_show(label1); - отображаем метку в окне.

Запускаем приложение

Надеюсь эта публикация была полезная. Так как фреймворк GTK имеет очень много полезных и интересных функций, что не дает возможности объяснить все в одной публикации.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.