0

我想在我用 Python 和 PyQt 编写的项目中使用 QThreads,但是当我运行这段代码时,我收到一个错误,它什么也没说:

segmentation fault (core dumped)  python file.py

我不知道这意味着什么以及代码有什么问题。那是我的代码:

import sys
from PyQt4 import QtCore, QtGui
import time
from PyQt4.QtCore import SIGNAL, QObject, QTimer
import libtorrent as lt


try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_Form(object):

    def setupUi(self, Form):
        #some code...

    def retranslateUi(self, Form):
        #some code...


class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)   


class Runnable(QtCore.QRunnable):

    def run(self):
        count = 0
        app = QtCore.QCoreApplication.instance()
        while count < 5:
            print "Increasing"
            time.sleep(1)
            count += 1
        app.quit()

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    apps = QtCore.QCoreApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    runnable = Runnable()
    QtCore.QThreadPool.globalInstance().start(runnable)
    sys.exit(app.exec_())
4

1 回答 1

1

您不允许创建多个应用程序实例。注释掉apps = QtCore.QCoreApplication(sys.argv)它就可以了。

于 2013-05-26T16:45:11.923 回答