Exemplo n.º 1
0
    def isOk(self):
        # set info piece
        gap = datetime.strptime(self.GetFinish.text(), "%Y-%m-%d %H:%M:%S") - \
            datetime.strptime(self.GetStart.text(), "%Y-%m-%d %H:%M:%S")
        gap_m = int(gap.seconds / 60)
        # did't change edit line protocol
        try:
            detail = self.Detail.text()
            detail = detail.strip()
            if len(detail) == 0:
                recentLog = self.GetRecentLog(pathm.GetLogFile())
                lastLogTemp = recentLog.split("|")
                detail = lastLogTemp[-1]

            if gap_m > 1:
                pieceInfo = self.GetStart.text()+"|"+self.GetFinish.text() + \
                    "|"+str(gap_m)+"|" + detail
                self.pieceInfo = pieceInfo
                # self.bingoLabel.setVisible(True)
                infoProto = 'T0:' + self.GetStart.text() + '\n' \
                    + 'T1:' + self.GetFinish.text() + '\n' \
                    + 'Gap:' + str(gap_m) + '\n' \
                    + 'Detail:' + detail
                reply = QMessageBox.question(self, 'Save Message', infoProto,
                                             QMessageBox.Yes | QMessageBox.No,
                                             QMessageBox.No)
                if reply == QMessageBox.Yes:
                    self.emitPiece()
                    self.close()
                    print('emit')
                    event.accept()
                else:
                    event.ignore()
        except:
            self.__reset__()
Exemplo n.º 2
0
 def __WritePiece__(self, info):
     if not isinstance(info, str):
         return
     elif len(info.strip()) < 10:
         return
     else:
         try:
             with open(pathm.GetLogFile(), 'a+', encoding='UTF-8') as f:
                 infoAppend = info + "\n"
                 f.write(infoAppend)
         except:
             pass
Exemplo n.º 3
0
 def __WritePiece_1__(self, info):
     if not isinstance(info, str):
         return
     elif len(info.strip()) < 10:
         return
     else:
         try:
             with open(pathm.GetLogFile(), 'r+', encoding='UTF-8') as f:
                 allLines = f.readlines()
                 # 避免重复写入
                 lastLine = allLines[-1]
                 if not info.strip('\n') == lastLine.strip('\n'):
                     # allLines[-1] = info + "\n"
                     f.write(info + "\n")
         except:
             pass
Exemplo n.º 4
0
 def __Writelog__(self):
     ret = False
     self.gap = self.StopTime - self.StartTime
     if int(self.gap.seconds) >= 2:
         text, ok = QInputDialog.getText(self, 'Track', 'What Did U DO?')
         if ok & (text.strip() != ""):
             try:
                 with open(pathm.GetLogFile(), 'a+', encoding='UTF-8') as f:
                     item = datetime.strftime(self.StartTime, "%Y-%m-%d %H:%M:%S") + \
                         "|" + \
                         datetime.strftime(
                             self.StopTime, "%Y-%m-%d %H:%M:%S")
                     item = item + "|" + str(int(
                         self.gap.seconds / 60)) + "|"
                     item = item + text
                     item = item + '\n'
                     f.write(item)
             except:
                 pass
             self.gap = datetime.now() - datetime.now()
             self.StartTime = datetime.now()
             self.StopTime = datetime.now()
             ret = True
     return ret
Exemplo n.º 5
0
    def __init__(self, parent=None, handleflag=0):
        super().__init__(parent)
        self.setWindowTitle("Piece Info")
        self.setWindowIcon(QIcon(os.path.join(self.srcpath, "记录-1.png")))
        # 交互模态设置
        self.setWindowModality(Qt.ApplicationModal)
        # 无边框
        if False:
            self.setWindowFlags(Qt.FramelessWindowHint | Qt.Dialog)
        # protop info
        self.pieceInfo = ""

        self.bingoLabel = QLabel("Bingo")
        style = (
            "QLabel{font-size:16px;font-weight:bold;color:green;font-family:'Century'}"
            "QLabel{border-radius:4px;border:2px solid rgb(118,154,40);}"
            "QLabel{background-color: #ABABAB;}"
            "QLabel:title{text-align:center}")
        self.bingoLabel.setStyleSheet(style)
        self.bingoLabel.setVisible(False)
        # 手动添加log文件
        if handleflag == 1:
            try:
                # 获取最后一条日志 作为start protop
                recentLog = self.GetRecentLog(pathm.GetLogFile())
                a = recentLog.split("|")
                startProto = datetime.strptime(a[1], "%Y-%m-%d %H:%M:%S")
                self.GetStart = QDateTimeEdit(startProto)  # 创建日期+时间的组件
                self.GetStart.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetStart.setStyleSheet(self.timedateStyle_1)
            except:
                self.GetStart = QDateTimeEdit(
                    QDateTime.currentDateTime())  # 创建日期+时间的组件
                self.GetStart.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetStart.setStyleSheet(self.timedateStyle_1)

            self.GetFinish = QDateTimeEdit(
                QDateTime.currentDateTime())  # 创建日期+时间的组件
            self.GetFinish.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
            self.GetFinish.setStyleSheet(self.timedateStyle_1)

            # detail item
            self.Detail = QLineEdit()
            self.Detail.setStyleSheet(self.lineEditStyle_1)
            self.Detail.setPlaceholderText("what did you do")
            self.Detail.setClearButtonEnabled(True)
        # 修改最后一条log文件
        else:
            try:
                # 获取最新一条详细日志
                recentLog = self.GetRecentLog(pathm.GetLogFile())
                a = recentLog.split("|")
                startProto = datetime.strptime(a[0], "%Y-%m-%d %H:%M:%S")
                self.GetStart = QDateTimeEdit(startProto)  # 创建日期+时间的组件
                self.GetStart.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetStart.setStyleSheet(self.timedateStyle_1)

                finishProto = datetime.strptime(a[1], "%Y-%m-%d %H:%M:%S")
                self.GetFinish = QDateTimeEdit(finishProto)  # 创建日期+时间的组件
                self.GetFinish.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetFinish.setStyleSheet(self.timedateStyle_1)
                # detail item
                self.Detail = QLineEdit()
                self.Detail.setStyleSheet(self.lineEditStyle_1)
                self.Detail.setPlaceholderText(a[-1])
                self.Detail.setClearButtonEnabled(True)
            except:
                self.GetStart = QDateTimeEdit(
                    QDateTime.currentDateTime())  # 创建日期+时间的组件
                self.GetStart.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetStart.setStyleSheet(self.timedateStyle_1)

                self.GetFinish = QDateTimeEdit(
                    QDateTime.currentDateTime())  # 创建日期+时间的组件
                self.GetFinish.setDisplayFormat('yyyy-MM-dd hh:mm:ss')  # 显示样式
                self.GetFinish.setStyleSheet(self.timedateStyle_1)
                self.Detail = QLineEdit()
                self.Detail.setStyleSheet(self.lineEditStyle_1)
                self.Detail.setPlaceholderText("try failed ")
                self.Detail.setClearButtonEnabled(True)
        # button area
        buttonbox = QDialogButtonBox(self)
        buttonbox.setOrientation(Qt.Horizontal)
        buttonbox.setStandardButtons(QDialogButtonBox.Cancel
                                     | QDialogButtonBox.Ok)
        buttonbox.accepted.connect(self.isOk)
        buttonbox.rejected.connect(self.isCancle)

        # space item
        spacerItem = QSpacerItem(20, 20, QSizePolicy.Minimum,
                                 QSizePolicy.Expanding)

        # frame layout
        layout_2 = QVBoxLayout()

        layout_2.addWidget(self.GetStart, 0)
        layout_2.addWidget(self.GetFinish, 1)
        layout_2.addWidget(self.Detail, 2)
        layout_2.addItem(spacerItem)
        layout_2.addWidget(self.bingoLabel, 3)
        layout_2.addWidget(buttonbox, 4)

        # layout
        self.setLayout(layout_2)
        self.setFixedWidth(400)