Hi All,
Finally I succeeded to create a simple window with a button and a
multiline text box!
Edward
On 29/11/2015, Edward Bartolo <edbarx@???> wrote:
> Hi Aitor,
>
> Thanks for taking some time to answer my question. I did as you
> instructed me and successfully compile and run the test program.
> However, the test program failed to close even though I closed its
> window. I had to kill it using Ctrl + C.
>
> Thanks
>
> On 29/11/2015, aitor_czr <aitor_czr@???> wrote:
>> Hi Edward,
>>
>> Replace by GtkObject* object by GtkWidget* widget in the routine
>> 'on_window_destroy'. On the other hand, use -export-dynamic. Otherwise,
>> you will get warnings running the executable:
>>
>> (prueba:4108): Gtk-WARNING **: Could not find signal handler
>> 'on_togglebutton1_clicked'. Did you compile with -rdynamic?
>>
>> In other words:
>>
>> $ gcc -o gtkprog gtkprog.c -export-dynamic `pkg-config --libs --cflags
>> gtk+-3.0`
>>
>> HTH,
>>
>> Aitor.
>>
>> On 11/28/2015 07:46 PM, Edward Bartolo <edbarx@???> wrote:
>>> Hi All,
>>>
>>> I am trying to practice creating a GUI with gtk but I am failing to
>>> compile my little test application.
>>>
>>> --------------------------------------------
>>>
>>> #include <gtk/gtk.h>
>>>
>>> void
>>> on_window_destroy (GtkObject *object, gpointer user_data)
>>> {
>>> gtk_main_quit ();
>>> }
>>>
>>> int
>>> main (int argc, char *argv[])
>>> {
>>> GtkBuilder *builder;
>>> GtkWidget *window;
>>>
>>> gtk_init (&argc, &argv);
>>>
>>> builder = gtk_builder_new ();
>>> gtk_builder_add_from_file (builder, "gui.glade", NULL);
>>> window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
>>> gtk_builder_connect_signals (builder, NULL);
>>>
>>> g_object_unref (G_OBJECT (builder));
>>>
>>> gtk_widget_show (window);
>>> gtk_main ();
>>>
>>> return 0;
>>> }
>>>
>>> ------------------------------
>>>
>>> The .glade file:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!-- Generated with glade 3.18.3 -->
>>> <interface>
>>> <requires lib="gtk+" version="3.12"/>
>>> <object class="GtkWindow" id="window1">
>>> <property name="can_focus">False</property>
>>> <child>
>>> <object class="GtkBox" id="box1">
>>> <property name="visible">True</property>
>>> <property name="can_focus">False</property>
>>> <property name="orientation">vertical</property>
>>> <child>
>>> <object class="GtkMenuButton" id="menubutton1">
>>> <property name="visible">True</property>
>>> <property name="can_focus">True</property>
>>> <property name="receives_default">True</property>
>>> <child>
>>> <placeholder/>
>>> </child>
>>> </object>
>>> <packing>
>>> <property name="expand">False</property>
>>> <property name="fill">True</property>
>>> <property name="position">0</property>
>>> </packing>
>>> </child>
>>> <child>
>>> <object class="GtkTextView" id="textview1">
>>> <property name="visible">True</property>
>>> <property name="can_focus">True</property>
>>> <property name="wrap_mode">word</property>
>>> </object>
>>> <packing>
>>> <property name="expand">True</property>
>>> <property name="fill">True</property>
>>> <property name="position">1</property>
>>> </packing>
>>> </child>
>>> <child>
>>> <object class="GtkToggleButton" id="togglebutton1">
>>> <property name="label"
>>> translatable="yes">togglebutton</property>
>>> <property name="width_request">100</property>
>>> <property name="visible">True</property>
>>> <property name="can_focus">True</property>
>>> <property name="receives_default">True</property>
>>> <property name="halign">end</property>
>>> <property name="valign">center</property>
>>> <property name="xalign">0.51999998092651367</property>
>>> <property name="image_position">right</property>
>>> <signal name="clicked" handler="on_togglebutton1_clicked"
>>> object="textview1" swapped="no"/>
>>> </object>
>>> <packing>
>>> <property name="expand">False</property>
>>> <property name="fill">True</property>
>>> <property name="pack_type">end</property>
>>> <property name="position">2</property>
>>> </packing>
>>> </child>
>>> </object>
>>> </child>
>>> </object>
>>> </interface>
>> ------------------------------ The command to compile: $ gcc -o gtkprog
>> gtkprog.c `pkg-config --libs --cflags gtk+-3.0` Could anyone shed some
>> light on what I am doing wrong? Edward
>>
>