2012-01-24 20 views
6

का उपयोग PyQt4 4.8.6 नीचे कोड त्रुटिPyQt4 परिणाम

QObject :: startTimer पैदा करता है: QTimer केवल धागे के साथ इस्तेमाल किया जा सकता है जब एक के लिए चर के रूप में प्रयोग किया जाता है QThread

के साथ शुरू QAplication, लेकिन यह चर उत्पन्न नहीं करता है अगर चर के लिए cpp (या सबसे अधिक कुछ) का उपयोग किया जाता है। क्या यह PyQt4 में एक बग है या क्या मुझे कुछ याद आ रही है?

#! /usr/bin/env python 

# This is only needed for Python v2 but is harmless for Python v3. 
import sip 
sip.setapi('QVariant', 2) 

from PyQt4 import QtGui 

#def main(): 

if __name__ == '__main__': 
    import sys 

    if len(sys.argv) > 1: 
     use_a = False 
     print "Don't use a" 
    else: 
     use_a = True 
     print "Use a" 

    if use_a: 
     a = QtGui.QApplication(sys.argv) 
    else: 
     cpp = QtGui.QApplication(sys.argv) 

    model = QtGui.QStandardItemModel(4,2) 
    tableView = QtGui.QTableView() 
    tableView.setModel(model) 

    tableView.show() 
    if use_a: 
     sys.exit(a.exec_()) 
    else: 
     sys.exit(cpp.exec_()) 


#if __name__ == '__main__': 
# main() 

उत्तर

6

शायद यह एक बग नहीं है।

जब पाइथन बंद होना शुरू होता है, ऑर्डर जिसमें वस्तुओं को कचरा इकट्ठा किया जाता है, अप्रत्याशित हो सकता है। आपके द्वारा देखे जा रहे त्रुटि संदेश की संभावना है कि इसका दुष्प्रभाव हो।

क्या यह आपके आवेदन में वास्तविक समस्या पैदा कर रहा है?

यदि नहीं, तो बस के रूप में उपयुक्त नाम बदल कर उसे के बारे में भूल ...

+0

यह कोई समस्या नहीं है, लेकिन मैं समझना चाहता था कि क्या हो रहा है। – MES

+0

मुझे एक ही समस्या है, क्या कंसोल से ऐसे त्रुटि संदेशों को निकालना संभव है? –

+0

क्या इन त्रुटि संदेशों को रोकने के लिए मैन्युअल रूप से थ्रेड को हटाना संभव है ?? –

0

आप जब यह बंद कर दिया है को नष्ट करने के दृश्य सेट करने की जरूरत है। ऐसा करने पर आपके आवेदन करने के लिए निम्नांकित दो पंक्तियों को जोड़ने जरूरत पर जोर देता:

from PyQt4.QtCore import Qt 

और उसके बाद के बाद tableView instantiated है:

tableView.setAttribute(Qt.WA_DeleteOnClose) 

जब मैं अपने कोड में उन पंक्तियों को जोड़ने मैं त्रुटि नहीं मिलता है।

संबंधित मुद्दे