Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Разработка GUI > QTnetwork в потоке


Автор: azazaz 20.8.2013, 05:00
Значит есть вот такая штука
https://github.com/Megido6/QtSimpleNet

пока в мега бета версии, но все же жизнь немного упрощает
так вот если ее использовать в потоке то будет ошибка 
QObject: Cannot create children for a parent that is in a different thread

если же использовать вне потока, или скопировать весь код класа в код скрипта где его нужно использовать также ошибки не будет.

вот пример скрипта каким я тестировал эту штуку
гугл кидает через много редиректов так что ошибок будет много, Но результат при этом будет!!!!


Код

#coding: utf-8
import sys
import sip
from PyQt4 import QtCore,QtGui
from time import sleep 
from simple_thread import SimpleThread
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import QtNetwork
from PyQt4.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
from QtSimpleNet import Net ####

class Table(QtGui.QDialog,QtGui.QWidget):
    def __init__(self, parent=None):
        self.run=True
        self.data=""
        self.profit=0
        super(Table, self).__init__(parent)

    @SimpleThread
    def bar(self, primaryText):
        while self.run:
            net.go('http://google.ru')
            print net.response
            sleep(5)
            


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    net=Net(app=app)
    Table=Table()
    Table.show()
    Table.bar('From thread', thr_start = True)
    app.exec_()




в аттаче модуль simple_thread





Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)