import meshGui
import studyManager
-#from qxembed import QXEmbed
+from libqxembed import QXEmbed
import SalomePyQt
#----------------------------------------------------------------------
- """
#------ embarcation dans une fenêtre qt pour mise au premier plan ---
- #embedded = QXEmbed( parent, "", qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )
- embedded = QXEmbed( parent, "" )
- #embedded.initialize()
- embedded.show()
- embedded.embedTk( self.winfo_id() )
- size = embedded.sizeHint()
- print 'CS_pbruno size (%s, %s )'%( size.width(), size.height () )
- embedded.resize( size.width(), size.height () )
- embedded.setWFlags( qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )
+
+ if parent is not None:
+ # _CS_gbo Cas 1: on s'appuie sur une fenêtre définie préalablement (parent).
+ # Dans ce cas, on programme le comportement du parent.
+ embedded = QXEmbed( parent, "")
+ embedded.embedTk( self.winfo_id() )
+ size = embedded.sizeHint()
+ embedded.resize( size.width(), size.height () )
+ #parent.resize( size.width(), size.height () )
+ parent.show()
+ # _CS_gbo Attention, il subsiste un pb au retaillage de
+ # la fenêtre après son affichage (jouer sur les show, je
+ # ne sais pas).
+ pass
+ else:
+ # _CS_gbo Cas 2: QXEmbed autonome (sans parent), on programme le comportement
+ # du QXEmbed.
+ refwindow = SalomePyQt.SalomePyQt().getDesktop()
+ embedded = QXEmbed( refwindow, "" , qt.Qt.WDestructiveClose | qt.Qt.WStyle_Tool)
+ embedded.embedTk( self.winfo_id() )
+ size = embedded.sizeHint()
+ print 'CS_pbruno size (%s, %s )'%( size.width(), size.height () )
+ embedded.resize( size.width(), size.height () )
+ #embedded.setWFlags( qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )
+ embedded.show()
+ pass
+
+ # On garde une référence pour la durée de vie de la fenêtre
+ self.embedded = embedded
#----------------------------------------------------------------------
- """
#--------------- spécialisation EFICAS dans SALOME -------------------
self.parent = parent
#----------------------------------------------------------------------
def quit(self):
- global appli
+ global appli
self.destroy()
appli = None
+ self.parent.destroy()
+
def __studySync( self ):
#-------------------------------------------------------------------------------------------------------
-# Point d'entré lancement EFICAS
+# Point d'entrée lancement EFICAS
#
-def runEficas( code="ASTER", fichier=None ):
- global appli
+# _CS_gbo Il faut garder une référence globale pour
+# le cycle de vie de la fenêtre.
+mw=None
+def runEficas( code="ASTER", fichier=None, parent=None ):
+ global appli, mw
if not appli: #une seul instance possible!
- appli = MyEficas( SalomePyQt.SalomePyQt().getDesktop(), code = code, fichier = fichier )
+
+ # On définit une fenêtre Qt support pour le QXEmbed
+ # qui va embarquer le Tk. C'est à cette fenêtre que
+ # l'on attribue le comportement de fenêtrage souhaité.
+ # _CS_gbo A terme, encapsuler dans MyEficas si cette
+ # solution devient définitive.
+ refwindow = SalomePyQt.SalomePyQt().getDesktop()
+ mw=qt.QDialog(refwindow, "Eficas", 0, qt.Qt.WDestructiveClose|qt.Qt.WStyle_Tool)
+ mw.setCaption("Eficas")
+ #mw.resize(400,400)
+ print "==========================="
+
+ appli = MyEficas( mw, code = code, fichier = fichier )
print 'bizarre'
embedded.grabKeyboard()
- """
\ No newline at end of file
+ """