2011-11-28 3 views
1

J'écris un plugin pour QtiPlot en utilisant Python. Dans l'interface graphique de ce plugin, j'aimerais afficher une liste déroulante qui contient une liste de toutes les fenêtres ouvertes d'une sorte de fenêtre (tracés, tableaux, notes, etc.). En cliquant sur, par exemple, un élément d'une liste déroulante contenant des tableaux, je voudrais charger cette table pour qu'elle fonctionne avec. Y a-t-il des suggestions pour résoudre ce problème?Liste des fenêtres QtiPlot ouvertes

La seule chose que je trouve est le paragraphe 7.2.6 du QtiPlot-Manual.

EDIT: J'ai maintenant une longueur d'avance. Je suis maintenant en mesure de récupérer une liste des noms de sous-fenêtre. Mais maintenant j'ai un problème pour afficher le gui dans la fenêtre de script gtiplot en utilisant le code suivant.

# Import system libraries. 
import os,sys 

# Import Qt modules. 
from PyQt4 import QtCore,QtGui 

class Widget(QtGui.QMainWindow): 

    def __init__(self): 
     super(Widget, self).__init__(); 
     self.initUI(); 

    def initUI(self): 
     # Set the window label. 
     self.lbl = QtGui.QLabel("", self); 

     # Fetch the QMdiArea object ... 
     ws = workspace(); 

     # ... and fetch all subwindows. 
     subs = ws.subWindowList(); 

     # Initialize the combobox ... 
     combo = QtGui.QComboBox(self); 

     # ... and add the items. 
     for sub in subs: 
      combo.addItem(sub.objectName()); 

     combo.move(50, 50); 
     self.lbl.move(50, 150); 

     combo.activated[str].connect(self.onActivated);  

     self.setGeometry(300, 300, 300, 200); 
     self.setWindowTitle('Subwindow DropDown'); 
     self.show(); 

    def onActivated(self, text): 
     self.lbl.setText(text); 
     self.lbl.adjustSize(); 

def main(): 
    app = QtGui.QApplication(sys.argv); 
    widget = Widget(); 
    sys.exit(app.exec_()); 

if __name__ == '__main__': 
    main(); 

Répondre

1
import os,sys 
from PyQt4 import QtCore,QtGui 

class Widget(QtGui.QMainWindow): 

    def __init__(self): 
     super(Widget, self).__init__(); 
     self.initUI(); 

    def initUI(self): 
     # Set the window label. 
     self.lbl = QtGui.QLabel("", self); 

     # Fetch the QMdiArea object ... 
     ws = workspace(); 

     # ... and fetch all subwindows. 
     subs = ws.subWindowList(); 

     # Initialize the combobox ... 
     combo = QtGui.QComboBox(self); 

     # ... and add the items. 
     for sub in subs: 
      combo.addItem(sub.objectName()); 

     combo.move(50, 50); 
     self.lbl.move(50, 150); 

     combo.activated[str].connect(self.onActivated);  

     self.setGeometry(300, 300, 300, 200); 
     self.setWindowTitle('Subwindow DropDown'); 
     self.show(); 

    def onActivated(self, text): 
     self.lbl.setText(text); 
     self.lbl.adjustSize(); 

widget = Widget(); 

J'espère que cela aide!

+0

Traduire en anglais veuillez –

Questions connexes