<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: новичек в Gtk+</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7360.html</link>
    <description>1) Подключаю функцыю к 9 кнопкам, где в качестве данных передаю адрес gint переменной, при каждом вызове функции значение n увеличивается от 0 до 8&lt;br&gt;for(i=0;i&amp;lt;9;i++)&#123;&lt;br&gt;  button = gtk_button_new ();&lt;br&gt;  g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,G_CALLBACK (click),&amp;n);&lt;br&gt;  gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;т.е. при нажатии на определенную кнопку должен происходить вызов одной и той же функции но с разным значением в data&lt;br&gt;&lt;br&gt;static void click(GtkWidget *widget,gpointer data)&lt;br&gt;&#123;&lt;br&gt;  g_print(&quot;data: &#037;d&#092;n&quot;,*(gint*)data);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;но выводится постоянно число 8&lt;br&gt;&lt;br&gt;data: 8&lt;br&gt;data: 8&lt;br&gt;data: 8&lt;br&gt;data: 8&lt;br&gt;data: 8&lt;br&gt;&lt;br&gt;Как тогда определить какая клавиша была нажата, для каждой кнопки заводить отдельную функцию обратного вызова?&lt;br&gt;&lt;br&gt;2) Создал кнопку с изображением:&lt;br&gt;&lt;br&gt;image_1 = gtk_image_new_from_file (&quot;1.xpm&quot;);&lt;br&gt;image_2 = gtk_image_new_from_file (&quot;2.xpm&quot;);&lt;br&gt;gtk_container_add (GTK_CONTAINER (button), image_1);&lt;br&gt;&lt;br&gt;Как сменить иконку на кнопке с image_1 на image_2&lt;br&gt;так правильно?&lt;br&gt;&lt;br&gt;gtk_container_remove</description>

<item>
    <title>новичек в Gtk+ (NuINu)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7360.html#3</link>
    <pubDate>Sun, 11 May 2008 17:37:05 GMT</pubDate>
    <description>Ну почему же никто не программирует? программируют, достаточно взглянуть на убунту.&lt;br&gt;Другое дело в россии это делают так, ни шатко не валко. :-)&lt;br&gt;Если хотите освоить ГТК приобретите пару книг: &lt;br&gt;Андрей Костельцов GTK+ Разработка переносимых интерфесов&lt;br&gt;Артур Гриффитс Программирование GNOME/GTK+&lt;br&gt;&lt;br&gt;Ага на первый ответили, ну повторюсь.&lt;br&gt;1)g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,G_CALLBACK (click),&amp;n);&lt;br&gt;ну когда в цикле делаешь коннект со ссылкой на одну и туже переменную вряд ли стоит ожидать что поведение функций будет различным попробуй так:&lt;br&gt;g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,G_CALLBACK (click),i);&lt;br&gt;&lt;br&gt;2)можно конечно и так как ты написал. но можно и так:&lt;br&gt;   gtk_button_set_image(GTK_BUTTON(widget), image_2);&lt;br&gt;тут есть одна тонкость если захочешь использовать image_1, то он окажеться уже удаленным :)&lt;br&gt;что бы этого не произошло сделай предварительно:&lt;br&gt;gtk_widget_ref(image_1);&lt;br&gt;&lt;br&gt;&lt;br&gt;3) что бы окно не меняло размер надо вызвать функцию ....&lt;br&gt;gtk_window_set_resizable(GTK_WINDOW(window),FALSE);</description>
</item>

<item>
    <title>новичек в Gtk+ (E.L.K.)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7360.html#2</link>
    <pubDate>Sat, 10 May 2008 23:23:38 GMT</pubDate>
    <description>&amp;gt;1) Подключаю функцыю к 9 кнопкам, где в качестве данных передаю адрес gint переменной, при &amp;gt;каждом вызове функции значение n увеличивается от 0 до 8&lt;br&gt;&amp;gt;for(i=0;i&amp;lt;9;i++)&#123;&lt;br&gt;&amp;gt;  button = gtk_button_new ();&lt;br&gt;&amp;gt;  g_signal_connect (G_OBJECT (button), &quot;clicked&quot;,G_CALLBACK (click),&amp;n);&lt;br&gt;&amp;gt;  gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);&lt;br&gt;&amp;gt;&#125;&lt;br&gt;&lt;br&gt;Я так понимаю, перебор идет не по i, а по n?&lt;br&gt;Иначе я просто затрудняюсь увидеть тут увеличение n. (:&lt;br&gt;Видимо, вся проблема в том, что передавая &amp;n, то есть _адрес_ переменной n, ты получаешь в рез-те то, что выводимое тобой *(gint*)data является тем же самым n. Вернее значением, взятым по адресу, где хранится n. Фактически, если ты остановишь цикл на 4х итерациях вместо 8ми, то получишь &lt;br&gt;&lt;br&gt;data: 4 &lt;br&gt;data: 4 &lt;br&gt;data: 4&lt;br&gt;&lt;br&gt;Если посмотришь в отладчике в нутри callback&apos;а, то ты увидишь, что они все получают одинаковый параметр - адрес переменной n. Что ты, собственно, туда и передал. (:&lt;br&gt;&lt;br&gt;Передавай значение. &lt;br&gt;</description>
</item>

<item>
    <title>новичек в Gtk+ (Rtl)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/7360.html#1</link>
    <pubDate>Sat, 10 May 2008 11:49:55 GMT</pubDate>
    <description>значит все юзают Qt... &lt;br&gt;зря за Gtk взялся...&lt;br&gt;</description>
</item>

</channel>
</rss>
