This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

python python Gtk.Builder.connect_signals() seg faults


It seems there is a bug in the cygwin version of the python Gtk.Builder.connect_signals().
Calling this function seg faults.  I have been unable to determine the root cause but I have found a work around.
The issue can be reproduced using the demo program from:

http://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.html

Also important is that this demo runs w/o problem on an older (Feb 2015) cygwin installation.
This is for python version 2.7 and gtk3 running on windows 7.  Attached is the cygcheck from the problem system.

The demo program:
--------------------------------
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class Handler:
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def onButtonPressed(self, button):
        print("Hello World!")

builder = Gtk.Builder()
builder.add_from_file("builder_example.glade")
builder.connect_signals(Handler())

window = builder.get_object("window1")
window.show_all()

Gtk.main()
-----------------------------------

builder_example_glade:
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <signal name="delete-event" handler="onDeleteWindow" swapped="no"/>
    <child>
      <object class="GtkButton" id="button1">
        <property name="label" translatable="yes">button</property>
        <property name="use_action_appearance">False</property>
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <property name="receives_default">True</property>
        <property name="use_action_appearance">False</property>
        <signal name="pressed" handler="onButtonPressed" swapped="no"/>
      </object>
    </child>
  </object>
</interface>
--------------------------------------

my work around:
--------------------------------------
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class Handler:
    def onDeleteWindow(self, *args):
        Gtk.main_quit(*args)

    def onButtonPressed(self, button):
        print("Hello World!")

builder = Gtk.Builder()
builder.add_from_file("builder_example.glade")
window = builder.get_object("window1")
handler = Handler()
window.connect("delete-event", handler.onDeleteWindow)

button = builder.get_object("button1")
button.connect("pressed", handler.onButtonPressed)

window.show_all()

Gtk.main()
--------------------------------------

 
 Terrence Kovacs
 Research Systems Engineer
 Physics and Astronomy Department
 Dartmouth College
 Wilder 341, 603-646-9303
     

Attachment: cygcheck.out
Description: cygcheck.out

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]