示例#1
0
class Pomodoro(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.initUI()

    def initUI(self):
        self.content = QWidget(self)
        self.control = QGridLayout(self)

        self.taskDur = QLineEdit(self)
        self.taskDur.setText("40")

        self.task = QLineEdit(self)
        self.task.setText("task")

        self.lcd = QLCDNumber(self)
        self.lcd.display("00:00")
        self.lcd.setMinimumSize(400, 400)

        self.indicator = QLCDNumber()
        self.indicator.display("00:00")
        self.indicator.setMinimumSize(75, 55)
        self.pat = PauseableTimer(self.lcd, self.task, self.indicator)

        self.start = QPushButton(self)
        self.start.setText("start")
        self.start.released.connect(self.pat.start_)

        self.pause = QPushButton(self)
        self.pause.setText("pause")
        self.pause.released.connect(self.pat.pause)

        self.stop = QPushButton(self)
        self.stop.setText("stop")
        self.stop.released.connect(self.pat.stop_)

        self.setTL = QPushButton(self)
        self.setTL.setText("set dur,minutes")
        self.setTL.released.connect(
            lambda: self.pat.setCount(int(self.taskDur.text())))

        self.log = QLineEdit(self)
        self.append = QPushButton(self)
        self.append.setText("append")
        self.append.released.connect(
            lambda: logging.critical("------" + self.log.text()))

        self.control.addWidget(self.taskDur, 0, 0, Qt.AlignLeft)

        self.control.addWidget(self.task, 0, 1, 1, 3)  #从0,1位置开始,跨1行,跨3列

        self.control.addWidget(self.lcd, 1, 0, 1, 4)

        self.control.addWidget(self.start, 2, 0)
        self.control.addWidget(self.pause, 2, 1)
        self.control.addWidget(self.stop, 2, 2)
        self.control.addWidget(self.setTL, 2, 3)
        self.control.addWidget(self.log, 3, 0, 1, 3)
        self.control.addWidget(self.append, 3, 3)

        self.content.setLayout(self.control)

        self.content.resize(400, 600)
        self.setCentralWidget(self.content)
        self.show()
        frameGm = self.indicator.frameGeometry()
        screen = QApplication.desktop().screenNumber(
            QApplication.desktop().cursor().pos())
        bottomRight = QApplication.desktop().screenGeometry(
            screen).bottomRight()
        frameGm.moveCenter(bottomRight)
        self.indicator.move(frameGm.bottomRight())
        self.indicator.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
        self.indicator.show()