‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Category:

GTK+XML

Не понимаю, в чём шляпа. Пишу так:
glade_xml_signal_connect_data (xml, "on_label1_control_button_clicked", GTK_SIGNAL_FUNC(on_label1_control_button_clicked), pud1 );,

где xml это файл со структурой интерфейса (создан при помощи Glade), on_label1_control_button_clicked - это сигнал (и его одноимённый обработчик), а pud1 - указатель на пользовательскую (т.е. мою) структуру данных, передаваемых в обработчик. Унутре оной структуры - указатель на label внутри окна. То есть сначала загружается xml, из него извлекаются в числе прочих указатели на метки (по именам, при помощи glade_xml_get_widget), эти указатели сохраняются в соответствующих полях некоей структуры, на которую pud1 уже и указывает. Но когда по соответствующему событию вызывается обработчик, то вместо нужного указателя он получает ахинею.

Нет, я бы ещё понял, если бы я передавал указатель на локальную переменную, уже давно испарившуюся из стека - тогда читались бы совсем не те данные, но ведь даже САМ УКАЗАТЕЛЬ куда-то "теряется" по дороге: передаётся одно, а принимается совсем другое.

То есть, в библиотеке с обработчиками у меня есть такой, например:
void on_label1_control_button_clicked (GtkWidget *widget, gpointer user_data);

И вроде должно быть так, что передаваемый pud1 должен в итоге попасть в user_data, а дальше уже дело самого обработчика, как эти данные трактовать. Но - не фурычит. Мало того, я пробовал передавать просто константы -- с тем же результатом, принимается что-то совсем иное.

Нипанятно.
Subscribe

  • worklog: плата питания для AM5708 (2)

    Разводка завершена, теперь её надо попробовать как-нибудь ещё улучшить. Этому обычно помогает отложить проект на день, чтобы потом посмотреть на него…

  • Смотрите, что я заметил.

    Смотрел запись программы "Время" от 17 октября 1990. В рубрике о спорте рассказано, в частности, о матче Каспаров-Карпов, на моменте 36:38 в кадре…

  • Очередное подтверждение правоты моего тезиса

    Каждый луноборец оказывается ещё и плоскозёмом: сначала Kevlar 13 просто поверил в невозможность полётов на Луну, а теперь уже отрицает возможность…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 16 comments

  • worklog: плата питания для AM5708 (2)

    Разводка завершена, теперь её надо попробовать как-нибудь ещё улучшить. Этому обычно помогает отложить проект на день, чтобы потом посмотреть на него…

  • Смотрите, что я заметил.

    Смотрел запись программы "Время" от 17 октября 1990. В рубрике о спорте рассказано, в частности, о матче Каспаров-Карпов, на моменте 36:38 в кадре…

  • Очередное подтверждение правоты моего тезиса

    Каждый луноборец оказывается ещё и плоскозёмом: сначала Kevlar 13 просто поверил в невозможность полётов на Луну, а теперь уже отрицает возможность…