The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"новичек в Gtk+"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "новичек в Gtk+" +/
Сообщение от E.L.K.email (?), 11-Май-08, 03:23 
>1) Подключаю функцыю к 9 кнопкам, где в качестве данных передаю адрес gint переменной, при >каждом вызове функции значение n увеличивается от 0 до 8
>for(i=0;i<9;i++){
>  button = gtk_button_new ();
>  g_signal_connect (G_OBJECT (button), "clicked",G_CALLBACK (click),&n);
>  gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
>}

Я так понимаю, перебор идет не по i, а по n?
Иначе я просто затрудняюсь увидеть тут увеличение n. (:
Видимо, вся проблема в том, что передавая &n, то есть _адрес_ переменной n, ты получаешь в рез-те то, что выводимое тобой *(gint*)data является тем же самым n. Вернее значением, взятым по адресу, где хранится n. Фактически, если ты остановишь цикл на 4х итерациях вместо 8ми, то получишь

data: 4
data: 4
data: 4

Если посмотришь в отладчике в нутри callback'а, то ты увидишь, что они все получают одинаковый параметр - адрес переменной n. Что ты, собственно, туда и передал. (:

Передавай значение.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
новичек в Gtk+, Rtl, 10-Май-08, 12:23  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру