Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gtk+ signals 
:(
    Опции темы
Ni@m
  Дата 30.6.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: нет
Всего: 6



Беда с сигналами!! Я пытаюсь связать с событием функцию и передать в нее данные, но возникает проблемма. Функция вызывается в любом случае, а вот данные передаются только в случае, если они инициализированны в main()(возможно если и иглобально), но если связка и данные инициализируются в другой функции, то - беда, данные теряются.
Использую для связки g_signal_connect, gtk_signal_connect.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
Ni@m
Дата 1.7.2005, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: нет
Всего: 6



Сам решил. Даже не знаю как. Вроде всегда до этого так делал.
Вот на всякий случай выкладываю рабочий код.

Код

#include <gnome.h>

void 
destroy()
{    
    gtk_main_quit();
}

void 
func_handle(GtkWidget *widget,
            gpointer data)
{
    g_message("%s",(gchar*)data);
}

GtkWidget *
createB()
{
    gchar *yep = "from function!";
    GtkWidget *button = gtk_button_new_with_label("second");
    g_signal_connect(G_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(func_handle),yep);
    gtk_widget_show(button);
    return button;
}

int main(int argc, char **argv)
{

    GtkWidget *app;
    
    gnome_init("test","0.0",argc,argv);
    app = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(app),"destroy",GTK_SIGNAL_FUNC(destroy),NULL);    
    
    gchar *yep = "from main!";

    GtkWidget *box = gtk_vbox_new(TRUE,0);
    
    GtkWidget *button1 = gtk_button_new_with_label("first");
    g_signal_connect(G_OBJECT(button1),"clicked",GTK_SIGNAL_FUNC(func_handle),yep);
    gtk_widget_show(button1);
    
    GtkWidget *button2 = createB();
    
    gtk_box_pack_start(GTK_BOX(box), button1,FALSE,FALSE,0);
    gtk_box_pack_start(GTK_BOX(box), button2,FALSE,FALSE,0);
    
    gtk_widget_show(box);
    
    gtk_container_add(GTK_CONTAINER(app),box);

    gtk_widget_show(app);
    gtk_main();
    
    return 0;
}

--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
v4v4n
Дата 26.9.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 26.9.2008

Репутация: нет
Всего: 4



Помогите скомпилировать эту программу в ubuntu 8.04
Код

:~$ cc gshow.c -lgnomeui
gshow.c:1:19: ошибка: gnome.h: No such file or directory




Это сообщение отредактировал(а) v4v4n - 26.9.2008, 20:38
PM MAIL   Вверх
Kekek
Дата 27.9.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 19.8.2007
Где: Северодонецк

Репутация: нет
Всего: 3



Цитата(v4v4n @ 26.9.2008,  16:53)
Помогите скомпилировать эту программу в ubuntu 8.04
Код

:~$ cc gshow.c -lgnomeui
gshow.c:1:19: ошибка: gnome.h: No such file or directory


pkg-config --cflags libgnomeui-2.0
pkg-config --libs libgnomeui-2.0


PM MAIL WWW Jabber   Вверх
v4v4n
Дата 27.9.2008, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 26.9.2008

Репутация: нет
Всего: 4



Kekek, спасибо!

Код

CC=gcc
LDLIBS=`pkg-config --libs libgnomeui-2.0`
CFLAGS=-Wall -g `pkg-config --cflags libgnomeui-2.0`

gshow: gshow.o
    $(CC) $(LDLIBS) gshow.o -o gshow
    
gshow.o: gshow.c
    $(CC) $(CFLAGS) -c gshow.c
    
clean:
    rm -f gshow
    rm -f *.o

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.