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__()
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
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
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
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)