ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> python-list
python-list
PyGtk and multiple windows
by Nemesis other posts by this author
Jan 25 2003 3:36PM messages near this date
Re: Using ActiveX objects in Win32 | Re: PyGtk and multiple windows
Hi all,
  I'm learning Python writing a little application (a newsreader).
The interface is designed with Glade, and it is imported in the python
app with the function GladeXML from LibGlade.
The interface has two windows, one of them (I'll call it window2) is in
the hide status (I set the proper switch with Glade), so when it has
to be visible I call a function that does window2.show(). I've linked
the method on_window2_destroy() to the signal destroy related to the
widget window2, this method simply hide window2 and returns 1 (this
should prevent destruction of window2).
But there is a problem, when I show the first time window2 it works
fine, but if I close it and try to reopen I get this error:

Gtk-CRITICAL **: file gtkstyle.c: line 513 (gtk_style_attach): assertion
`style != NULL' failed.

Gtk-CRITICAL **: file gtkstyle.c: line 1134 (gtk_style_set_background):
assertion `style != NULL' failed.

Gtk-CRITICAL **: file gtkstyle.c: line 3613 (gtk_paint_flat_box):
assertion `style != NULL' failed.

And I get a little black window without any widget in it.

Where is the problem?


I've tested the application with the software that can be found
in Debian Woody:

Python  2.1.3
Gtk     1.2.10
PyGtk   0.6.9
PyGlade 0.6.9
Glade   0.6.4



This is the code:

# This is the callback that activates window2

def on_lista_gruppi1_activate (obj):
    "Mostra la finestra con la lista dei gruppi."
    print "lista gruppi1 activate"
    window2.show()


# This is the callback linked to the destroy signal

def on_window2_destroy(obj):
    "Metodo richiamato alla distruzione della window2"
    print "win2 destroy"
    window2.hide()
    return 1

# This is the function that loads the interface 
interface = GladeXML ("newsx.glade")

# Connecting the signals
dic ={"on_lista_gruppi1_activate":on_lista_gruppi1_activate,
      "on_window1_destroy":mainquit,
      "on_window2_show":on_window2_show,
      "on_button1_clicked":on_button1_clicked,
      "on_button2_clicked":on_button2_clicked,
      "on_button5_clicked":on_button5_clicked,
      "on_clist2_select_row":on_clist2_select_row,
      "on_clist3_select_row":on_clist3_select_row,
      "on_clist1_select_row":on_clist1_select_row,
      "on_ctree1_select_row":on_ctree1_select_row,
      "on_window2_destroy":on_window2_destroy}

interface.signal_autoconnect(dic)


The complete program can be found at :
http://digilander.libero.it/nemesis2001/codice/newsx-0.0.1.tgz

P.S. Please forgive my poor english ;-)
-- 
 |\ |       <->  http://digilander.libero.it/nemesis2001/
 | \|emesis <->       "War, war never change us..."
  
-- 
http://mail.python.org/mailman/listinfo/python-list
Thread:
Nemesis
Nemesis
Nemesis


Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved