Hi,

Okay, so you want to run a gtk app inside a non-gtk app (the fax application
does not use gtk, right?).

First question that comes to mind is: why? Doesn't the application have a
GUI library of its own?

If you want to use gtk, The trick now is to let both behave in tandem. I
suppose the cad app is also running a main loop. Is there any chance you can
register a idle handler there? Then you can use object.main_iteration() to
run a single iteration at a time. Hence the cad app is not blocking.
Personally I'm not in favor of using multiple GUI toolkit in one app.

Another solution can be to create a subprocess. Either by forking or by
launching a new process. It depends on the data you want to show, though.
Maybe fetch up to date information through a socket ;)

Regards,
Arjan
Op 5 mrt. 2011 08:12 schreef "Matteo Boscolo" <[email protected]>
het volgende:
> Sorry for my english .. may be some code is more explicit.
>
> this is my com class:
> #!/usr/bin/env python
> #oi:=newObj('OpenClient.Interface')
> #oi->showDialog()
> # example base.py
> import pygtk
> pygtk.require('2.0')
> import gtk
> S_OK =0
> E_FAIL=1
> class Base:
> def __init__(self):
> self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
> self.window.show()
>
> def main(self):
> gtk.main()
>
> class CustomInterface(object):
> _reg_clsid_ = "{F184147B-E26F-419E-8BEE-71B669F39D44}"
> _reg_desc_ = "Client interface"
> _reg_progid_ = "OpenClient.Interface"
>
> _public_methods_ = [
> 'setParent',
> 'showDialog'
> ]
>
> def __init__(self):
> self._application = None
> self._interface=Base()
>
> def setParent(self, application):
> self._application=application
> return S_OK
>
> def showDialog(self):
> self._interface.main()
> return S_OK
> def destrory(self):
> gtk.main_quit()
>
> if __name__ == "__main__":
> import sys
> import win32com.server.register
> sys.argv.append('--debug')
> win32com.server.register.UseCommandLine(CustomInterface)
>
> from a vbs script I call this class :
> dim o
> msgbox "test"
> set o=createObject("OpenClient.Interface")
> msgbox "test1"
> o.showDialog()
> msgbox "test2"
> o.destrory()
>
> when the method showDialog() is executed the execution is inside the
> method .. so the test2 msgbox dose not appear
> what I need to do is extending may main application with some form using
> the gtk ..
> so looking at the code the system have to execute the showdialog and go
> out and stop at the test2 msgbox.
>
> with qt I do the following
> class Base:
> def __init__(self):
> self._app = QtGui.QApplication(sys.argv)
> self.MainForm = QtGui.QWidget()
> self.MainForm.resize(250, 150)
> self.MainForm.setWindowTitle('Exsample')
>
> def main(self):
> self.MainForm.show()
>
> and it works as I wont
>
> Regards,
> Matteo
>
>
>
> Il 05/03/2011 00:13, Arjan Molenaar ha scritto:
>>
>> Hi Matteo,
>>
>> I'm not totally sure if I get your question right, but it seems to me
>> you should just create a new top-level window. With
>> gtk.Window.set_transient_for() you're able to create a parent-child
>> relation for this (utility) window.
>>
>> Regards,
>>
>> Arjan
>>
>> Op 4 mrt. 2011 22:55 schreef "Matteo Boscolo"
>> <[email protected] <mailto:[email protected]>> het
>> volgende:
>> > Hi All,
>> > I'm developing an application inside a cad package written in c++ using
>> > a python Com server.
>> > in this application I would like to create a windows form with a list
>> > view reading data from a database ..
>> >
>> > I would like to have a no modal window so the user can leave the gtk
>> > application open.
>> >
>> > my problem is that if I use the gtk..mainloop()the code is into the gtk
>> > application and I cannot use the cad application..
>> >
>> > I do some test with python thread ..
>> > there is other way to do such a think ?
>> >
>> > Regards,
>> > Matteo
>> >
>>
>> ------------------------------------------------------------------------
>> ------------------------------------------------------------------------
>>
>> Nessun virus nel messaggio.
>> Controllato da AVG - www.avg.com <http://www.avg.com>
>> Versione: 10.0.1204 / Database dei virus: 1435/3481 - Data di
>> rilascio: 04/03/2011
>>
>
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to