Пример #1
0
    def mouseReleaseEvent(self, event):
        if event.button() == Qt.LeftButton:
            if self.panActive:
                self.panActive = False

                if not ENABLE_KINETIC_PANNING or self.lastMoveTime.msecsTo(QTime.currentTime()) > HOLD_TIME_THRESHOLD:
                    return

                self.kineticPanSpeed = QPointF()
                entriesConsidered = 0

                currentTime = QTime.currentTime()

                for entry in self.mouseHistory:
                    if not entry.time:
                        continue

                    if entry.time.msecsTo(currentTime) < HOLD_TIME_THRESHOLD:
                        self.kineticPanSpeed += entry.position
                        entriesConsidered += 1

                if entriesConsidered > 0:
                    self.kineticPanSpeed /= entriesConsidered

                self.lastMoveTime = currentTime

                self.kineticTimer.start()
                self.panDecellerate = True

        event.accept()
Пример #2
0
    def TurnGenerator(self, startPosition):
        """
    Takes PointerPosition on explicit call to send().
    Generates turn positions between lines that lie on a axis (vertical or horizontal).
   
    Qt doesn't have event.time . Fabricate it here.  X11 has event.time.
    """
        position = None  # if events are: send(None), close(), need this defined
        previousPosition = startPosition
        positionClock = QTime.currentTime()  # note restart returns elapsed
        positionClock.restart()
        # I also tried countPositionsSinceTurn to solve lag for cusp-like
        # print "init turn"

        try:
            while True:
                position = (yield)
                positionElapsedTime = positionClock.restart()
                turn = self.detectTurn(previousPosition, position)
                if turn is not None:
                    self.lineGenerator.send((turn, positionElapsedTime))
                    previousPosition = position  # Roll forward
                else:  # path is still on an axis: wait
                    pass
        finally:
            # assert position is defined
            if previousPosition != position:
                """ Have position not sent. Fabricate a turn (equal to position) and send() """
                self.lineGenerator.send((position, 0))
            print "Closing turn generator"
Пример #3
0
    def editNewTodo(self):
        """Sets the current todo to a newly created todo"""
        newTodo = QOrganizerTodo()
        newTodo.setPriority(QOrganizerItemPriority.HighPriority)
        newTodo.setStatus(QOrganizerTodoProgress.StatusNotStarted)
        currentDateTime = QDateTime(QDate.currentDate(), QTime.currentTime())
        newTodo.setStartDateTime(currentDateTime)
        newTodo.setDueDateTime(currentDateTime.addSecs(60*60))

        self._todo = newTodo
        self._todo.isNewTodo = True
        self.currentTodoChanged.emit()
Пример #4
0
    def kineticTimerEvent(self):

        currentTime = QTime.currentTime()

        deltaTime = self.lastMoveTime.msecsTo(currentTime)
        self.lastMoveTime = currentTime

        if self.panDecellerate:
            self.kineticPanSpeed *= pow(0.5, float(deltaTime / KINETIC_PANNING_HALFLIFE))

        scaledSpeed = self.kineticPanSpeed * deltaTime

        if self.kineticPanSpeed.manhattanLength() < KINETIC_PAN_SPEED_THRESHOLD:
            self.kineticTimer.stop()
            return
        self.panFloatWrapper(scaledSpeed)
Пример #5
0
    def mousePressEvent(self, event):
        self.setFocus()

        if event.button() == Qt.LeftButton:
            if event.modifiers() & Qt.ControlModifier:
                pass
            else:
                if self.coordQueryState:
                    self.coordQueryResult.emit(self.screenPositionToCoordinate(event.lastPos()))
                    return

                self.panActive = True

                self.kineticTimer.stop()
                self.kineticPanSpeed = QPointF()
                self.lastMoveTime = QTime.currentTime()

        event.accept()
Пример #6
0
    def kineticTimerEvent(self):

        currentTime = QTime.currentTime()

        deltaTime = self.lastMoveTime.msecsTo(currentTime)
        self.lastMoveTime = currentTime

        if self.panDecellerate:
            self.kineticPanSpeed *= pow(
                0.5, float(deltaTime / KINETIC_PANNING_HALFLIFE))

        scaledSpeed = self.kineticPanSpeed * deltaTime

        if self.kineticPanSpeed.manhattanLength(
        ) < KINETIC_PAN_SPEED_THRESHOLD:
            self.kineticTimer.stop()
            return
        self.panFloatWrapper(scaledSpeed)
Пример #7
0
    def mouseMoveEvent(self, event):
        if event.modifiers() & Qt.ControlModifier:
            if self.lastCircle:
                self.lastCircle.setCenter(self.screenPositionToCoordinate(event.pos()))
        elif self.panActive:
            currentTime = QTime.currentTime()
            deltaTime = self.lastMoveTime.msecsTo(currentTime)

            delta = event.lastPos() - event.pos()

            if deltaTime > 0:
                self.kineticPanSpeed = delta / deltaTime

                self.mouseHistory.popleft()
                self.mouseHistory.append(MouseHistoryEntry(self.kineticPanSpeed, currentTime))

            self.panFloatWrapper(delta)

        event.accept()
Пример #8
0
    def testInsert(self):
        myHash = {}
        qdate = QDate.currentDate()
        qdatetime = QDateTime.currentDateTime()
        qtime = QTime.currentTime()
        qurl = QUrl("http://www.pyside.org")
        qpoint = QPoint(12, 42)

        myHash[qdate] = "QDate"
        myHash[qdatetime] = "QDateTime"
        myHash[qtime] = "QTime"
        myHash[qurl] = "QUrl"
        myHash[qpoint] = "QPoint"

        self.assertEqual(myHash[qdate], "QDate")
        self.assertEqual(myHash[qdatetime], "QDateTime")
        self.assertEqual(myHash[qtime], "QTime")
        self.assertEqual(myHash[qurl], "QUrl")
        self.assertEqual(myHash[qpoint], "QPoint")
Пример #9
0
    def testInsert(self):
        myHash = {}
        qdate = QDate.currentDate()
        qdatetime = QDateTime.currentDateTime()
        qtime = QTime.currentTime()
        qurl = QUrl("http://www.pyside.org")
        qpoint = QPoint(12, 42)

        myHash[qdate] = "QDate"
        myHash[qdatetime] = "QDateTime"
        myHash[qtime] = "QTime"
        myHash[qurl] = "QUrl"
        myHash[qpoint] = "QPoint"

        self.assertEqual(myHash[qdate], "QDate")
        self.assertEqual(myHash[qdatetime], "QDateTime")
        self.assertEqual(myHash[qtime], "QTime")
        self.assertEqual(myHash[qurl], "QUrl")
        self.assertEqual(myHash[qpoint], "QPoint")
Пример #10
0
 def updateClock(self):
     self.setText(QTime.currentTime().toString("hh:mm"))
Пример #11
0
 def updateClock(self):
     self.setText(QTime.currentTime().toString("hh:mm"))
from PySide.QtCore import QTime, QTimer, Qt
from PySide.QtGui import QApplication, QLabel

import sys
import time


def quitApplication(app):
    return app.quit


if __name__ == '__main__':

    app = QApplication(sys.argv)
    due = QTime.currentTime()
    message = "Alert! "

    try:
        if len(sys.argv) < 2:
            raise ValueError("Not enough arguments")

        hours, minutes = sys.argv[1].split(":")
        #python SimpleApp.py 09:32 <optional message>

        due = QTime(int(hours), int(minutes))
        if not due.isValid():
            raise ValueError("Input time is not Valid")

        if len(sys.argv) > 2:
            message += " ".join(sys.argv[2:])
Пример #13
0
# Only Example: import, it's not recommended but for the simple app it's okay

from PySide.QtCore import QTime, QTimer, Qt
from PySide.QtGui import QApplication, QLabel

import sys
import time

app = QApplication(sys.argv)

# Hold the current time for the alarm clock
due = QTime.currentTime()

# Static message for Alert box
message = 'Alert!'


try:
    message = 'Alert!'

    # The application requires always an argument
    if len(sys.argv) < 2:
        sys.argv.append('%02d:%02d' % (due.hour(), due.minute()))
    elif len(sys.argv) > 2:
        message = ' '.join(sys.argv[2:])

    # class PySide.QtCore.QTime(h, m[, s=0[, ms=0]])
    hours, minutes = sys.argv[1].split(':')

    due = QTime(int(hours), int(minutes))