예제 #1
0
                self.gate.wait()
            finally:
                self.gate.reset()

    def setCurrentPosition(self, pos):
        self.currentPosition = pos
        self.gate.send(None)


if __name__ == "__main__":
    import logging; logging.basicConfig(level = logging.DEBUG)
    gate = DependsOnCurrentPosition()
    def t1():
        gate.wait(10)
        print("t1: exit")

    def t2():
        for i in range(10):
            gate.setCurrentPosition(i)
            print("t2:", i)
            eventlet.sleep(1)
        eventlet.stop_application()

    def t3():
        g1, g2 = eventlet.spawn(t1), eventlet.spawn(t2)
        g1.wait(), g2.wait()

    app = QCoreApplication([])
    g3 = eventlet.spawn(t3)
    eventlet.start_application()
예제 #2
0
import logging; logging.basicConfig(level = logging.DEBUG)
from hgoldfish.utils import eventlet
from eventlet.green import urllib
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QApplication, QTextBrowser

class TestWidget(QTextBrowser):
    def __init__(self):
        QTextBrowser.__init__(self)
        self.operations = eventlet.GreenletGroup()

    def mousePressEvent(self, event):
        if event.button() == Qt.MidButton:
            self.operations.spawn(self.getpage)
        QTextBrowser.mousePressEvent(self, event)

    def getpage(self):
        page = urllib.urlopen("http://code.google.com/p/eventlet-pyqt/").read().decode("utf-8")
        self.setHtml(page)

app = QApplication([])
w = TestWidget()
w.show()
eventlet.start_application(quitOnLastWindowClosed = True)
예제 #3
0
class TestWidget(QTextBrowser):
    def __init__(self):
        QTextBrowser.__init__(self)
        self.operations = eventlet.GreenletGroup()
        self.setPlainText("click middle button to navigate www.163.com")

    def mousePressEvent(self, event):
        if event.button() == Qt.MidButton:
            self.operations.spawn(self.getpage)
            self.operations.spawnWithName("print_number", self.printNumbers)
        QTextBrowser.mousePressEvent(self, event)

    def printNumbers(self):
        i = 0
        while True:
            eventlet.sleep(0.1)
            i += 1
            self.append(str(i))

    def getpage(self):
        page = requests.get("http://www.163.com").text
        self.setPlainText(page)
        self.operations.kill("print_number")


if __name__ == "__main__":
    app = QApplication([])
    w = TestWidget()
    w.show()
    eventlet.start_application(quitOnLastWindowClosed=True)
예제 #4
0
                self.gate.reset()

    def setCurrentPosition(self, pos):
        self.currentPosition = pos
        self.gate.send(None)


if __name__ == "__main__":
    import logging
    logging.basicConfig(level=logging.DEBUG)
    gate = DependsOnCurrentPosition()

    def t1():
        gate.wait(10)
        print("t1: exit")

    def t2():
        for i in range(10):
            gate.setCurrentPosition(i)
            print("t2:", i)
            eventlet.sleep(1)
        eventlet.stop_application()

    def t3():
        g1, g2 = eventlet.spawn(t1), eventlet.spawn(t2)
        g1.wait(), g2.wait()

    app = QCoreApplication([])
    g3 = eventlet.spawn(t3)
    eventlet.start_application()