Выполнить 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_())
Есть идеи?
Спасибо ник