使用execfile执行PySide QtWidget

时间:2016-08-08 15:26:57

标签: python pyside 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 个答案:

没有答案