Список открытых окон QtiPlot - PullRequest
1 голос
/ 28 ноября 2011

Я пишу плагин для QtiPlot, используя Python.В графическом интерфейсе этого плагина я хотел бы отобразить выпадающий список, в котором содержится список всех открытых окон одного типа окон (графики, таблицы, заметки и т. Д.).Например, щелкнув элемент раскрывающегося списка, в котором содержатся таблицы, я хочу загрузить эту таблицу для работы с ней.Есть какие-нибудь предложения, как решить эту проблему?

Единственное, что я нашел, это пункт 7.2.6 Руководство по QtiPlot .

РЕДАКТИРОВАТЬ : Я сейчас на шаг впереди.Теперь я могу получить список имен подокнов.Но теперь у меня проблема с отображением графического интерфейса в окне сценариев gtiplot с использованием следующего кода.

# 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();

1 Ответ

1 голос
/ 06 марта 2017
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();

Надеюсь, это поможет!

...