Практические советы разработчикам приложений на GTK+. Примеры базовых приложений. Также будет описана работа с новыми компонентами, добавленными в последних версиях GTK+. Рассматриваются особенности программирования под Windows и Linux.
Статистика
0 за неделю
Практические советы по GTK+ (Форматированный текст. часть 1)
Форматированный текст. часть 1 GTK содержит неплохую поддержку работы с форматированным текстом, можно даже с минимальными усилиями написать небольшой визуальный редактор rtf или html файлов. Разберёмся как всё работает с самого начала. Создаём виджет для вывода форматированного текста: GtkWidget *text_view = gtk_text_view_new); Для понимания работы с текстовым виджетом введём несколько понятий: 1)Все операции с текстом выполняются через текстовый буфер, который можно получить из виджета следующим образом:...
Работа с потоками
Использование Glib(входит в состав GTK+) при написании многопоточных программ имеет свои плюсы. Самое очевидное – это переносимость, одно и то же приложение может быть совместимо с Unix, Windows и MacOS на уровне исходных кодов. К тому же Glib есть на всех Linux дистрибутивах, даже там, где нет GTK, да и для Windows приходится носить с собой гораздо меньше DLL библиотек, чем для всего GTK целиком. Если я Вас убедил использовать Glib для создания многопоточных программ, тогда читайте дальше....
Практические советы по GTK+ (Дополнительные возможности GtkEntry)
Дополнительные возможности GtkEntry Такой простой виджет, как GtkEntry (поле ввода для текста) содержит множество дополнительных полезных свойств. 1) Например, поле ввода можно переключить в режим ввода пароля: GtkWidget *entry = gtk_entry_new); gtk_entry_set_visibility(GTK_ENTRY(entry,FALSE); // password mode Отображать все символы не звёздочками по умолчанию, а своими символами, в данном случае плюсиками: gtk_entry_set_invisible_char(GTK_ENTRY(entry); 2) Ещё можно сделать как в броузере, при вводе начала...
Практические советы по GTK+ (Создание списков. часть 2)
Создание списков часть 2 В предыдущей часть был создан простой список с сортировкой. Как и обещал, на этот раз усложним список. В колонке "Имя" теперь слева от имени будет иконка, показывающая пол человека. Напомню, что в качестве примера пишем небольшое приложение,показывающее список людей. В списке три столбца: порядковый номер, имя и возраст. Теперь в колонке с именем будет ещё и иконка. Для этого придётся создать новый тип поля: картинка+текст, назовём его PixtextItemId. Для этого нестандартн...
Практические советы по GTK+ (Создание списков. часть 1)
Создание списков часть 1 Разберём создание списков. Для примера напишем небольшое приложение,показывающее список людей. Для начала попробуем упростить всё по максимуму. В списке будет три столбца: порядковый номер, имя и возраст. Причём при нажатии на заголовок колонки, её содержимое будет сортироваться. Раньше всё можно было создать через GtkCList, теперь GtkCList объявлен как deprecated, то есть не рекомендован к использованию во вновь создаваемых программах.Предлагают использовать взамен GtkTreeView, по...
Практические советы по GTK+ (Локализация приложения)
Локализация приложения Если Вы собираетесь писать мультиязычное приложение на GTK, то самым простым способом будет воспользоваться встроенными средствами перевода. Все строки, требуемые перевода, меняем со "string" на gettext("string") или проще на ("string". Например: gtk_label_new("Latitude"); Все переводы строк будут находится в отдельном файле. Теперь остаётся только создать этот файл. Вам не придётся вручную искать строки для перевода в исходных файлах. Существу...
Практические советы по GTK+ Работа с файлом настроек
В составе GTK+ на мой взгляд есть довольно интересные функции для сохранения/чтения настроек из текстового файла. Называются они g_key_file API и расположены в библиотеке GLib [появились в версии GTK+ 2.6 (в конце 2004г] С помощью этих функций Вы можете сохранять настройки приложения в текстовый файл, который можно будет посмотреть/отредактировать в обычном текстовом редакторе. Вот пример файла настроек: [Common] auto_run=true # имя файла помощи к программе path_help=help.chm path_help[ru=help_ru.chm path_...
Практические советы по GTK+ Работа со строками
Работа со строками: В состав GTK входит библиотека Glib которая содержит множество полезных функций, которые кстати можно использовать не только из GTK приложений, но и из любых других программ. Если Вы хотите пользоваться только Glib без GTK, тогда нужно будет включить заголовочный файл <glib.h> Многие функции дублируют posix функции для работы со строками, но есть и уникальные. Мне больше всего нравится функция g_strdup_printf, которая аналогична sprintf, но более безопасная, так как сама вычислит ...
Практические советы по GTK+ Особенности работы с файлами в GTK+
Особенности работы с файлами в GTK+ : Gtk использует кодировку UTF8, а ваша операционная система может пользоваться другой, например в Windows используется CP1251, а в Linux может быть какая угодно, но обычно KOI8(в старых дистрибутивах) или UTF8(в более новых дистрибутивах. Для открытия файла, например через fopen, требуется имя файла в кодировке системы. Конечно, если используются только латинские символы, то проблем не будет, но ведь пользователи могут назвать свои файлы и по русски. Решение проблемы пр...
Практические советы по GTK+ Image Viewer 1.8
Image Viewer 1.8 После летнего перерыва продолжаем писать GTK приложение для просмотра графических файлов. Сегодня рассмотрим новое окно - область предосмотра картинок. Добавим новый файл в проект: pictures_preview.c На сегодня новый виджет - GtkIconView, который отображает список иконок. Вот основная функция, которая создаёт область просмотра иконок: enum { COL_PATH, COL_DISPLAY_NAME, COL_PIXBUF, COL_IS_DIRECTORY, NUM_COLS }; // Создание окна с предварительным просмотром картинок GtkWidget* create_picture...