Выполнить PySide QtWidget, используя execfile

Я хочу создать небольшой инструмент, который будет читать все инструменты python в папке, помещать их в QListWidget и каждый раз, когда я дважды щелкаю по одному из инструментов, он запускается.

ToolList.py
Это главное окно с инструментами

import sys
import glob
from PySide import QtGui


class List(QtGui.QListWidget):
    def __init__(self, parent=None):
        super(List, self).__init__(parent)

        # Add tools
        for f in glob.glob("tool_*.py"):
            self.addItem(f)
        self.itemDoubleClicked.connect(self.execute_python)

    def execute_python(self):
        for itm in self.selectedItems():
            execfile(itm.text())


if __name__ == '__main__':
    app = QtGui.QApplication([])
    form = List()
    form.show()
    sys.exit(app.exec_())

tool_test1.py
Когда я дважды щелкаю этот, он исчезает автоматически

import sys
from PySide import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication.instance()
    but = QtGui.QPushButton()
    but.show()

tool_test2.py
И когда я дважды щелкаю по этому, он падает, говоря QCoreApplication::exec: цикл обработки событий уже запущен

import sys
from PySide import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication.instance()
    but = QtGui.QPushButton()
    but.show()
    sys.exit(app.exec_())

Есть идеи?

Спасибо ник

0 ответов

Другие вопросы по тегам