IPB

Здравствуйте, гость ( Вход | Регистрация )

> GTK+ Си
Поделиться
kostyalamer
сообщение 30.8.2014, 16:54
Сообщение #1


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Предлагаю, выкладывать в этой теме примеры простейших программ и разную полезную информацию по GTK+.
Правда только если это будет кому-либо интересно на нашем форуме, например тема с Arduino у нас здесь заглохла .
Поскольку плодить мертвые темы глупо, пишите если есть интерес, если интереса ни у кого не будет , тему просто удалим.
PS А вообще у нас как-то тихо, что на Линуксе для всех , что здесь wink.gif

Сообщение отредактировал kostyalamer - 30.8.2014, 17:03
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
ИВК
сообщение 30.8.2014, 20:52
Сообщение #2


Профессионал
*******

Группа: Глоб. Модератор
Сообщений: 10146
Регистрация: 22.6.2009
Вставить ник
Цитата
Из: Онега
Пользователь №: 1352
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 30


Так выкладывай что есть, а там видно будет smile.gif
А лично мне Qt достаточно. GTK+ - для меня уже излишество mellow.gif
А то, что тихо на форуме... это уже глубокий кризис, и у меня прямо сейчас нет идей насчёт оживления.


--------------------
Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
kostyalamer
сообщение 30.8.2014, 21:57
Сообщение #3


Профессионал
*******

Группа: Пользователь
Сообщений: 4384
Регистрация: 17.9.2009
Вставить ник
Цитата
Пользователь №: 1617
Страна: Россия
Город: Санкт-Петербург
Пол: Муж.



Репутация: 20


Цитата(IVK @ 30.8.2014, 20:52) *
Так выкладывай что есть, а там видно будет smile.gif

Ну ладно , полезные ссылки:
http://habrahabr.ru/post/135809/ - для начала
http://wiki.linuxformat.ru/wiki/LXF86:GTK%2B
http://docstore.mik.ua/manuals/ru/gtk_plus/book1.html
http://www.opennet.ru/docs/RUS/gtk_plus/

Для того что бы скомпилировать программу в altlinux на связке си и gtk+ надо дать команду :
gcc -Wall -o имя_проги.c имя_проги `pkg-config --cflags --libs gtk+-2.0`
ввиду хронической лени я забил в настройки Geany ( Сборка / Команды сборки ) :
для компиляции : gcc -Wall -c "%f" `pkg-config --cflags --libs gtk+-2.0`
для сборки : gcc -Wall -o "%e" "%f" `pkg-config --cflags --libs gtk+-2.0`
и теперь обхожусь мышкокликаньем.
В следующих постах подкину несколько простых шаблонов на основе которых достаточно бычтро можно написать
свои программы вот простенький примерчик :

Код
# include <gtk/gtk.h>   /* Подключаем библиотеку GTK+ */
# include <stdio.h>

static int count = 0;
int winx = 200;
int winy = 200;

void button_clicked(GtkWidget *button, gpointer data) // Обработчик нажатия кнопок
{
    
    printf("%s pressed %d time(s) \n", (char *) data,  ++count);

}

int main( int argc, char *argv[] )
{
   //GtkWidget *button;                                          // Кнопка
   GtkWidget *button1;                                          // Кнопка1
   GtkWidget *button2;                                          // Кнопка2
   GtkWidget *button3;                                          // Кнопка3
   GtkWidget *button4;                                          // Кнопка3
   GtkWidget *window;                                         // Главное окно
   GtkWidget *fixed;
   gtk_init( &argc, &argv );                                                                 // Инициализируем GTK+
   window = gtk_window_new( GTK_WINDOW_TOPLEVEL );            // Создаем главное окно
   gtk_window_set_title( GTK_WINDOW( window ),"Тест кнопок gtk");
   gtk_window_set_default_size(GTK_WINDOW(window), winx, winy);
   gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
   fixed = gtk_fixed_new();
   gtk_container_add(GTK_CONTAINER(window), fixed);
  
   button1= gtk_button_new_with_label ("Кнопка 1");
   gtk_fixed_put(GTK_FIXED(fixed), button1, 0, 0);
   gtk_widget_set_size_request(button1, winx, 50);
   g_signal_connect( G_OBJECT( button1 ), "clicked",GTK_SIGNAL_FUNC(button_clicked), "Button 1");

   button2= gtk_button_new_with_label ("Кнопка 2");
   gtk_fixed_put(GTK_FIXED(fixed), button2, 0, 50);
   gtk_widget_set_size_request(button2, winx, 50);
   g_signal_connect( G_OBJECT( button2 ), "clicked",GTK_SIGNAL_FUNC(button_clicked), "Button 2");
  
   button3= gtk_button_new_with_label ("Кнопка 3");
   gtk_fixed_put(GTK_FIXED(fixed), button3, 0, 100);
   gtk_widget_set_size_request(button3, winx, 50);
   g_signal_connect( G_OBJECT( button3 ), "clicked",GTK_SIGNAL_FUNC(button_clicked), "Button 3");
  
   button4= gtk_button_new_with_label ("Выход");
   gtk_fixed_put(GTK_FIXED(fixed), button4, 0, 150);
   gtk_widget_set_size_request(button4, winx, 50);
   g_signal_connect( G_OBJECT( button4 ), "clicked",GTK_SIGNAL_FUNC(gtk_main_quit), "Button 4"); // Выход по нажатию кнопки
  
   g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);   // Выход по кресту на рамке
  
   gtk_widget_show_all(window);
   gtk_main();                  
return 0;
}

а вот как этот шаблон выглядит :
Прикрепленный файл  shablon01.png ( 9.55 килобайт ) Кол-во скачиваний: 2

PS во всех шаблонах код мой только частично , все остальное взято из интернета wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 5.7.2025, 14:56