class MyMainWindow(QMainWindow): """ the widget """ def __init__(self): ''' the init function ''' QWidget.__init__(self) self.createSystemTray() self.createUI() self.createConnections() self.createActions() self.setWindowTitle(u'定时器') #then the size policy self.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.quitWithoutTray = False #then the positon/geometry self.setGeometry(400, 400, self.size().width(), self.size().height()) self.mission = None self.intervalTimer = None DB.initTables() def closeEvent(self, evt): ''' override the closeEvent to decide whether use systemTray ''' if self.quitWithoutTray: if None != self.mission: self.mission.storeEvent() evt.accept() else: self.hide() evt.ignore() def showAllShortCut(self): ''' not implemented show all shortcuts set ''' pass def keyPressEvent(self, evt): if evt.key() == Qt.Key_Escape or (evt.key() == Qt.Key_W\ and evt.modifiers() & Qt.ControlModifier): self.hide() self.msgLabel.hide()#TODO no esc effect if self.msgLabel.isVisible(): self.msgLabel.hide() elif (evt.key() == Qt.Key_Q and evt.modifiers()&Qt.ControlModifier): self.noTrayClose() #global shortcut to invoke the app, not implemented elif (evt.key() == Qt.Key_T and evt.modifiers()&Qt.AltModifier): self.show() else: QWidget.keyPressEvent(self, evt) @pyqtSlot(int) def trayActivated(self, reason): if QSystemTrayIcon.DoubleClick == reason or QSystemTrayIcon.Trigger == reason: self.show() def createUI(self): self.ui = Ui_MainWindow() self.ui.setupUi(self) self.nowTimeText = time.strftime(u'%H:%M:%S'.encode('utf-8')).decode('utf-8') self.ui.labelStartTime.setText(self.nowTimeText) self.ui.labelEndTime.setText('') self.ui.lineEditTimeCount.setFocus() self.msgLabel = MyLabel(u'<h1>时间到!</h1><img src=":/img/38.gif"/>') self.msgLabel.hide() self.msgLabel.setBuddy(self) self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) def createConnections(self): self.connect(self.ui.btnStartTimer, SIGNAL('clicked()'), \ self.startTimer) self.connect(self.ui.btnComplete, SIGNAL('clicked()'), \ self.missionComplete) self.connect(self.ui.btnDiscard, SIGNAL('clicked()'), \ self.missionDiscarded) def createActions(self): self.ui.actViewData.setShortcut('Alt+D') self.connect(self.ui.actViewData, SIGNAL('triggered()'), self.viewData) @pyqtSlot() def viewData(self): self.dataWidget = getattr(self, 'dataWidget', False) if not self.dataWidget: self.dataWidget = getWidgetWithData() if self.dataWidget.isVisible(): self.dataWidget.hide() else: self.dataWidget.show() def startTimer(self): #ui update self.nowTimeText = time.strftime(u'%H:%M:%S'.encode('utf-8')).decode('utf-8') minute = self.ui.lineEditTimeCount.text() try: minute = float(minute) self.timeCount = minute except ValueError: return self.ui.labelStartTime.setText(self.nowTimeText) self.dueTime = datetime.now() + timedelta(seconds=minute*60) dueTimeText = self.dueTime.strftime(u'%H:%M:%S'.encode('utf8')).decode('utf8') self.ui.labelEndTime.setText(dueTimeText) self.ui.btnStartTimer.setDisabled(True) self.ui.btnComplete.setDisabled(False) self.ui.btnDiscard.setDisabled(False) #then timer self.mainTimer = QTimer() self.mainTimer.singleShot(minute*60*1000, self, SLOT('timeOutMsg()')) self.mission = DB.dailyEvent() desc = self.ui.LEDescription.toPlainText() if len(desc) != 0: self.mission.setDescription(desc) self.resetIntervalTimer() def resetIntervalTimer(self): if None == self.intervalTimer: self.intervalTimer = QTimer() self.connect(self.intervalTimer, SIGNAL('timeout()'), self.intervalNoticeMsg) else: self.intervalTimer.stop() self.intervalNoticeTime = self.ui.intervalNoticeEdit.text() if self.intervalNoticeTime != '': try: self.intervalNoticeTime = float(self.intervalNoticeTime) except ValueError: return self.intervalCount = 0 self.intervalTimer.start(self.intervalNoticeTime*60*1000) @pyqtSlot() def missionDiscarded(self): #db self.mission.setDiscarded() self.mission.setEndTimeNow() self.mission.storeEvent() #ui self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) self.ui.btnStartTimer.setDisabled(False) self.updateProgress() #timers self.mainTimer.stop() self.intervalTimer.stop() self.intervalCount = 0 #TODO duplicated code! #TODO ui state change waiting -> in progress -> waiting @pyqtSlot() def intervalNoticeMsg(self): if not self.mission.isComplete() and not self.mission.isDiscarded(): self.intervalCount = self.intervalCount + 1 self.systemTray.showMessage(u'友情提醒', u'已经过了'+unicode(self.intervalCount)+u'个'+unicode(self.intervalNoticeTime)+u'分钟\n'+u'有木有!'*20, QSystemTrayIcon.Information, 2000) self.updateProgress() @pyqtSlot() def missionComplete(self): #db self.mission.setEndTimeNow() self.mission.setComplete() #if complete in 30s, marked as not timeouted if datetime.now() > self.dueTime + timedelta(seconds=30): self.mission.setTimeouted() self.mission.storeEvent() #ui self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) self.ui.btnStartTimer.setDisabled(False) self.updateProgress() #timer self.intervalCount = 0 if self.mainTimer: self.mainTimer.stop() @pyqtSlot() def noTrayClose(self): self.quitWithoutTray = True self.close() sys.exit() @pyqtSlot() def timeOutMsg(self): if self.dueTime+timedelta(milliseconds=100) > datetime.now() > self.dueTime and not self.mission.isComplete(): #if this is the right timeoutMsg, that is, not a discarded one, so, in the interval self.mainTimer.stop() self.msgLabel.setWindowFlags(Qt.FramelessWindowHint) self.msgLabel.setGeometry(self.msgLabel.width(), self.msgLabel.height(), self.size().width(), self.size().height()) self.msgLabel.show() @pyqtSlot() def updateStartTime(self): text = self.ui.lineEditStartTime.text() if len(text) < 1: self.nowTimeText = time.strftime(u'%H:%M:%S'.encode('utf-8')).decode('utf-8') text = self.nowTimeText else: infer = TimeInference(text) self.ui.labelStartTime.setText(text) def updateProgress(self): startTime = self.mission.startTime nowTime = datetime.now() usedSeconds = (nowTime-startTime).seconds progress = usedSeconds / float(self.timeCount*60) progress = 1 if progress > 1 else progress self.ui.progressBar.setValue(int(progress * 100)) pass def createSystemTray(self): self.systemTray = QSystemTrayIcon(self) self.trayIcon = QIcon(':/systemTray/tray.ico') self.trayMenu = QMenu(self) self.exitAction = QAction(u'退出', self) self.showAction = QAction(u'显示', self) self.connect(self.exitAction, SIGNAL('triggered()'), self.noTrayClose) self.connect(self.showAction, SIGNAL('triggered()'), self.show) self.trayMenu.addAction(self.exitAction) self.trayMenu.addAction(self.showAction) self.systemTray.setContextMenu(self.trayMenu) self.systemTray.setIcon(self.trayIcon) #self.connect(self.systemTray, SIGNAL('activated(int)'), self.trayActivated) self.systemTray.activated.connect(self.trayActivated) self.systemTray.show() pass
class MyMainWindow(QMainWindow): """ the widget """ def __init__(self): ''' the init function ''' QWidget.__init__(self) self.createSystemTray() self.createUI() self.createConnections() self.createActions() self.setWindowTitle(u'定时器') #then the size policy self.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.quitWithoutTray = False #then the positon/geometry self.setGeometry(400, 400, self.size().width(), self.size().height()) self.mission = None self.intervalTimer = None DB.initTables() def closeEvent(self, evt): ''' override the closeEvent to decide whether use systemTray ''' if self.quitWithoutTray: if None != self.mission: self.mission.storeEvent() evt.accept() else: self.hide() evt.ignore() def showAllShortCut(self): ''' not implemented show all shortcuts set ''' pass def keyPressEvent(self, evt): if evt.key() == Qt.Key_Escape or (evt.key() == Qt.Key_W\ and evt.modifiers() & Qt.ControlModifier): self.hide() self.msgLabel.hide() #TODO no esc effect if self.msgLabel.isVisible(): self.msgLabel.hide() elif (evt.key() == Qt.Key_Q and evt.modifiers() & Qt.ControlModifier): self.noTrayClose() #global shortcut to invoke the app, not implemented elif (evt.key() == Qt.Key_T and evt.modifiers() & Qt.AltModifier): self.show() else: QWidget.keyPressEvent(self, evt) @pyqtSlot(int) def trayActivated(self, reason): if QSystemTrayIcon.DoubleClick == reason or QSystemTrayIcon.Trigger == reason: self.show() def createUI(self): self.ui = Ui_MainWindow() self.ui.setupUi(self) self.nowTimeText = time.strftime( u'%H:%M:%S'.encode('utf-8')).decode('utf-8') self.ui.labelStartTime.setText(self.nowTimeText) self.ui.labelEndTime.setText('') self.ui.lineEditTimeCount.setFocus() self.msgLabel = MyLabel(u'<h1>时间到!</h1><img src=":/img/38.gif"/>') self.msgLabel.hide() self.msgLabel.setBuddy(self) self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) def createConnections(self): self.connect(self.ui.btnStartTimer, SIGNAL('clicked()'), \ self.startTimer) self.connect(self.ui.btnComplete, SIGNAL('clicked()'), \ self.missionComplete) self.connect(self.ui.btnDiscard, SIGNAL('clicked()'), \ self.missionDiscarded) def createActions(self): self.ui.actViewData.setShortcut('Alt+D') self.connect(self.ui.actViewData, SIGNAL('triggered()'), self.viewData) @pyqtSlot() def viewData(self): self.dataWidget = getattr(self, 'dataWidget', False) if not self.dataWidget: self.dataWidget = getWidgetWithData() if self.dataWidget.isVisible(): self.dataWidget.hide() else: self.dataWidget.show() def startTimer(self): #ui update self.nowTimeText = time.strftime( u'%H:%M:%S'.encode('utf-8')).decode('utf-8') minute = self.ui.lineEditTimeCount.text() try: minute = float(minute) self.timeCount = minute except ValueError: return self.ui.labelStartTime.setText(self.nowTimeText) self.dueTime = datetime.now() + timedelta(seconds=minute * 60) dueTimeText = self.dueTime.strftime( u'%H:%M:%S'.encode('utf8')).decode('utf8') self.ui.labelEndTime.setText(dueTimeText) self.ui.btnStartTimer.setDisabled(True) self.ui.btnComplete.setDisabled(False) self.ui.btnDiscard.setDisabled(False) #then timer self.mainTimer = QTimer() self.mainTimer.singleShot(minute * 60 * 1000, self, SLOT('timeOutMsg()')) self.mission = DB.dailyEvent() desc = self.ui.LEDescription.toPlainText() if len(desc) != 0: self.mission.setDescription(desc) self.resetIntervalTimer() def resetIntervalTimer(self): if None == self.intervalTimer: self.intervalTimer = QTimer() self.connect(self.intervalTimer, SIGNAL('timeout()'), self.intervalNoticeMsg) else: self.intervalTimer.stop() self.intervalNoticeTime = self.ui.intervalNoticeEdit.text() if self.intervalNoticeTime != '': try: self.intervalNoticeTime = float(self.intervalNoticeTime) except ValueError: return self.intervalCount = 0 self.intervalTimer.start(self.intervalNoticeTime * 60 * 1000) @pyqtSlot() def missionDiscarded(self): #db self.mission.setDiscarded() self.mission.setEndTimeNow() self.mission.storeEvent() #ui self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) self.ui.btnStartTimer.setDisabled(False) self.updateProgress() #timers self.mainTimer.stop() self.intervalTimer.stop() self.intervalCount = 0 #TODO duplicated code! #TODO ui state change waiting -> in progress -> waiting @pyqtSlot() def intervalNoticeMsg(self): if not self.mission.isComplete() and not self.mission.isDiscarded(): self.intervalCount = self.intervalCount + 1 self.systemTray.showMessage( u'友情提醒', u'已经过了' + unicode(self.intervalCount) + u'个' + unicode(self.intervalNoticeTime) + u'分钟\n' + u'有木有!' * 20, QSystemTrayIcon.Information, 2000) self.updateProgress() @pyqtSlot() def missionComplete(self): #db self.mission.setEndTimeNow() self.mission.setComplete() #if complete in 30s, marked as not timeouted if datetime.now() > self.dueTime + timedelta(seconds=30): self.mission.setTimeouted() self.mission.storeEvent() #ui self.ui.btnComplete.setDisabled(True) self.ui.btnDiscard.setDisabled(True) self.ui.btnStartTimer.setDisabled(False) self.updateProgress() #timer self.intervalCount = 0 if self.mainTimer: self.mainTimer.stop() @pyqtSlot() def noTrayClose(self): self.quitWithoutTray = True self.close() sys.exit() @pyqtSlot() def timeOutMsg(self): if self.dueTime + timedelta(milliseconds=100) > datetime.now( ) > self.dueTime and not self.mission.isComplete(): #if this is the right timeoutMsg, that is, not a discarded one, so, in the interval self.mainTimer.stop() self.msgLabel.setWindowFlags(Qt.FramelessWindowHint) self.msgLabel.setGeometry(self.msgLabel.width(), self.msgLabel.height(), self.size().width(), self.size().height()) self.msgLabel.show() @pyqtSlot() def updateStartTime(self): text = self.ui.lineEditStartTime.text() if len(text) < 1: self.nowTimeText = time.strftime( u'%H:%M:%S'.encode('utf-8')).decode('utf-8') text = self.nowTimeText else: infer = TimeInference(text) self.ui.labelStartTime.setText(text) def updateProgress(self): startTime = self.mission.startTime nowTime = datetime.now() usedSeconds = (nowTime - startTime).seconds progress = usedSeconds / float(self.timeCount * 60) progress = 1 if progress > 1 else progress self.ui.progressBar.setValue(int(progress * 100)) pass def createSystemTray(self): self.systemTray = QSystemTrayIcon(self) self.trayIcon = QIcon(':/systemTray/tray.ico') self.trayMenu = QMenu(self) self.exitAction = QAction(u'退出', self) self.showAction = QAction(u'显示', self) self.connect(self.exitAction, SIGNAL('triggered()'), self.noTrayClose) self.connect(self.showAction, SIGNAL('triggered()'), self.show) self.trayMenu.addAction(self.exitAction) self.trayMenu.addAction(self.showAction) self.systemTray.setContextMenu(self.trayMenu) self.systemTray.setIcon(self.trayIcon) #self.connect(self.systemTray, SIGNAL('activated(int)'), self.trayActivated) self.systemTray.activated.connect(self.trayActivated) self.systemTray.show() pass
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(1081, 599) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/funcell.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) Form.setWindowIcon(icon) Form.setStyleSheet( _fromUtf8( "QToolButton[objectName=\"closetoolButton\"] {\n" "border:0px;\n" "}\n" "QToolButton[objectName=\"closetoolButton\"]:hover {\n" "image:url(:/images/close_hover.png);\n" "}\n" "QToolButton[objectName=\"closetoolButton\"]:pressed {\n" "image:url(:/images/close_pressed.png);\n" "}\n" "\n" "QToolButton[objectName=\"closetoolButton_2\"] {\n" "border:0px;\n" "}\n" "QToolButton[objectName=\"closetoolButton_2\"]:hover {\n" "image:url(:/images/min_hover.png);\n" "}\n" "QToolButton[objectName=\"closetoolButton_2\"]:pressed {\n" "image:url(:/images/min_pressed.png);\n" "}\n" "\n" "QWidget[objectName=\"Form\"]{\n" "border-image:url(\":/images/funcell_bg.png\");\n" "}\n" "\n" "QToolButton[objectName=\"toolButton\"]{\n" "background-color: rgb(85, 255, 127);\n" "border-radius: 10px;\n" "}\n" "QLineEdit[objectName=\"lineEdit\"],QLineEdit[objectName=\"lineEdit_2\"]{\n" "border:0px;\n" "background-color:transparent;\n" "}\n" "QCheckBox[objectName=\"checkBox\"],QLabel[objectName=\"label_3\"],QLineEdit[objectName=\"lineEdit\"],QLineEdit[objectName=\"lineEdit_2\"]{\n" "font-family:\'微软雅黑\';\n" "color:white;\n" "}\n" "\n" "QLabel[objectName=\"label_4\"],QLabel[objectName=\"label_5\"]{\n" "font-family:\'微软雅黑\';\n" "color:red;\n" "}\n" "")) self.widget = QtGui.QWidget(Form) self.widget.setGeometry(QtCore.QRect(-1, -1, 1081, 601)) self.widget.setObjectName(_fromUtf8("widget")) self.line_2 = QtGui.QFrame(self.widget) self.line_2.setGeometry(QtCore.QRect(320, 225, 420, 3)) self.line_2.setFrameShape(QtGui.QFrame.HLine) self.line_2.setFrameShadow(QtGui.QFrame.Sunken) self.line_2.setObjectName(_fromUtf8("line_2")) self.label = QtGui.QLabel(self.widget) self.label.setGeometry(QtCore.QRect(320, 182, 30, 30)) self.label.setText(_fromUtf8("")) self.label.setPixmap(QtGui.QPixmap(_fromUtf8(":/images/use.png"))) self.label.setObjectName(_fromUtf8("label")) self.line_3 = QtGui.QFrame(self.widget) self.line_3.setGeometry(QtCore.QRect(320, 295, 420, 3)) self.line_3.setFrameShape(QtGui.QFrame.HLine) self.line_3.setFrameShadow(QtGui.QFrame.Sunken) self.line_3.setObjectName(_fromUtf8("line_3")) self.checkBox = QtGui.QCheckBox(self.widget) self.checkBox.setGeometry(QtCore.QRect(670, 365, 71, 16)) self.checkBox.setChecked(True) self.checkBox.setObjectName(_fromUtf8("checkBox")) self.toolButton = QtGui.QToolButton(self.widget) self.toolButton.setGeometry(QtCore.QRect(320, 425, 420, 61)) self.toolButton.setAutoRepeat(False) self.toolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.toolButton.setObjectName(_fromUtf8("toolButton")) self.lineEdit = QtGui.QLineEdit(self.widget) self.lineEdit.setGeometry(QtCore.QRect(390, 185, 321, 25)) font = QtGui.QFont() font.setFamily(_fromUtf8("微软雅黑")) self.lineEdit.setFont(font) self.lineEdit.setText(_fromUtf8("")) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.line_4 = QtGui.QFrame(self.widget) self.line_4.setGeometry(QtCore.QRect(360, 255, 3, 25)) self.line_4.setFrameShape(QtGui.QFrame.VLine) self.line_4.setFrameShadow(QtGui.QFrame.Sunken) self.line_4.setObjectName(_fromUtf8("line_4")) self.lineEdit_2 = QtGui.QLineEdit(self.widget) self.lineEdit_2.setGeometry(QtCore.QRect(390, 255, 321, 25)) font = QtGui.QFont() font.setFamily(_fromUtf8("微软雅黑")) self.lineEdit_2.setFont(font) self.lineEdit_2.setText(_fromUtf8("")) self.lineEdit_2.setEchoMode(QtGui.QLineEdit.Password) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.line = QtGui.QFrame(self.widget) self.line.setGeometry(QtCore.QRect(360, 185, 3, 25)) self.line.setFrameShape(QtGui.QFrame.VLine) self.line.setFrameShadow(QtGui.QFrame.Sunken) self.line.setObjectName(_fromUtf8("line")) # self.label_3 = QtGui.QLabel(self.widget) # self.label_3.setGeometry(QtCore.QRect(640, 525, 105, 31)) # self.label_3.setObjectName(_fromUtf8("label_3")) self.label_3 = MyLabel(self) self.label_3.setGeometry(QtCore.QRect(640, 525, 105, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.label_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) self.label_2 = QtGui.QLabel(self.widget) self.label_2.setGeometry(QtCore.QRect(320, 250, 30, 30)) self.label_2.setText(_fromUtf8("")) self.label_2.setPixmap(QtGui.QPixmap(_fromUtf8(":/images/suo.png"))) self.label_2.setObjectName(_fromUtf8("label_2")) self.closetoolButton = QtGui.QToolButton(self.widget) self.closetoolButton.setGeometry(QtCore.QRect(1050, 5, 27, 22)) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/close_normal.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.closetoolButton.setIcon(icon) self.closetoolButton.setIconSize(QtCore.QSize(27, 22)) self.closetoolButton.setObjectName(_fromUtf8("closetoolButton")) self.closetoolButton_2 = QtGui.QToolButton(self.widget) self.closetoolButton_2.setGeometry(QtCore.QRect(1020, 5, 27, 22)) icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/images/min_normal.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.closetoolButton_2.setIcon(icon1) self.closetoolButton_2.setIconSize(QtCore.QSize(27, 22)) self.closetoolButton_2.setObjectName(_fromUtf8("closetoolButton_2")) self.label_4 = QtGui.QLabel(self.widget) self.label_4.setGeometry(QtCore.QRect(770, 210, 105, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) self.label_5 = QtGui.QLabel(self.widget) self.label_5.setGeometry(QtCore.QRect(770, 280, 105, 31)) self.label_5.setObjectName(_fromUtf8("label_5")) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) self.closetoolButton.clicked.connect(self.close) self.closetoolButton_2.clicked.connect(self.showMinimized) self.toolButton.clicked.connect(self.LoginTask) self.initUserInfo() def retranslateUi(self, Form): Form.setWindowTitle(_translate("Form", "请登录", None)) self.checkBox.setText(_translate("Form", "记住密码", None)) self.toolButton.setText(_translate("Form", "登 录", None)) self.label_3.setText(_translate("Form", "没有帐号?立即注册", None)) self.closetoolButton.setText(_translate("Form", "...", None)) self.closetoolButton_2.setText(_translate("Form", "...", None)) self.label_4.setText(_translate("Form", "游戏ProductCode", None)) self.label_5.setText(_translate("Form", "游戏ProductKey", None)) def mouseMoveEvent(self, event): if (event.buttons() == Qt.LeftButton): self.endPos = event.globalPos() - self.startPos self.move(self.endPos) def mousePressEvent(self, event): if (event.button() == Qt.LeftButton): self.startPos = event.globalPos() - self.frameGeometry().topLeft() elif (event.button() == Qt.MiddleButton): self.closeWindowAnimation() def registerTask(self): print 'register user' def saveUserInfo(self): GameFile = file_operate.getFullPath("Log/GameFile.log") checkflag = "False" if self.checkBox.isChecked(): checkflag = "True" info = self.lineEdit.text() + '|' + self.lineEdit_2.text( ) + '|' + checkflag logFile = codecs.open(GameFile, 'w', 'utf-8') content = info + '\r\n' logFile.write(unicode(content, 'gbk')) logFile.close() def initUserInfo(self): GameFile = file_operate.getFullPath("Log/GameFile.log") if not os.path.exists('Log'): os.makedirs('Log') if os.path.exists(GameFile): f = open(GameFile, 'a+') data = str(f.read()) f.close() if len(data) > 0 and data.find('|') != -1: logFile = codecs.open(GameFile, 'a+', 'utf-8') for line in logFile.readlines(): line = line.rstrip("\r\n") Info = line.split('|') if Info[2] == "True": self.lineEdit.setText(Info[0]) self.lineEdit_2.setText(Info[1]) self.checkBox.setChecked(True) else: self.checkBox.setChecked(False) break def getHostAddress(self): address = '' try: config = ET.parse(file_operate.getCommonXmlPath()) root = config.getroot() host = root.find("host") address = host.get("address") except Exception, e: print e print "Error: cannot parse file: commonconfig.xml." return -1 return address