Example #1
0
 def BigWork(self):
     # 干一件大事... 耗时 10s
     #import 自己的进程类
     from threads import BigWorkThread
     #新建对象
     self.bwThread = BigWorkThread(self.callback)
     #开始执行run()函数里的内容
     self.bwThread.start()
Example #2
0
    def subprocess(self):
        file_path = str(self.lineEdit.text().toLocal8Bit())

        self.bwThread = BigWorkThread(file_path)
        self.connect(self.bwThread, QtCore.SIGNAL("where"), self.update)
        self.connect(self.bwThread, QtCore.SIGNAL("finish_show"),
                     self.finish_show)
        self.connect(self.bwThread, QtCore.SIGNAL("start_matlab"),
                     self.start_matlab)
        self.bwThread.start()
Example #3
0
    def subprocess(self):
        #from threads import BigWorkThread

        if self.radioButton.isChecked():
            line = [
                1,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_2.isChecked():
            line = [
                2,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_3.isChecked():
            line = [
                3,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_4.isChecked():
            line = [
                4,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_5.isChecked():
            line = [
                5,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        else:
            line = []
        #创建子进程
        self.bwThread = BigWorkThread(line)

        self.connect(self.bwThread, QtCore.SIGNAL("where"), self.update)
        self.connect(self.bwThread, QtCore.SIGNAL("showtxt"), self.showtxt)
        self.connect(self.bwThread, QtCore.SIGNAL("finish_show"),
                     self.finish_show)
        self.connect(self.bwThread, QtCore.SIGNAL("finddocfile"),
                     self.finddocfile)
        #开始执行子进程run()函数里的内容
        self.bwThread.start()
Example #4
0
class MyDialog(QtGui.QDialog, Ui_Form):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)
        #调用内部的 setupUi() ,本身对象作为参数
        self.setupUi(self)
        #连接 QPushButton 的点击信号到槽 BigWork()
        self.BigWork()

    def BigWork(self):
        # 干一件大事... 耗时 10s
        #import 自己的进程类
        from threads import BigWorkThread
        #新建对象
        self.bwThread = BigWorkThread(self.callback)
        #开始执行run()函数里的内容
        self.bwThread.start()

    def callback(self, s):
        self.label.setText(s)
 def validate_excel(self):
     try:
         #把按钮禁用掉
         self.pushButton.setDisabled(True)
         #import 自己的进程类
         from threads import BigWorkThread
         #新建对象,传入参数
         filePath = self.lineEdit.text()
         print(filePath)
         houzui = ""
         if len(filePath) > 0:
             list = filePath.split('/')
             zui = list[len(list) - 1]
             houzui = zui.split(".")
             if houzui[1] != "xlsx":
                 raise Exception("文件类型不正确!")
             result_name = houzui[0] + "_" + "校验结果" + "." + houzui[1]
             path = ""
             for i in range(len(list) - 1):
                 path += list[i] + "\\"
             inpath = path + zui
             exportFilePath = path + result_name
             print(inpath)
             print(exportFilePath)
             self.bwThread = BigWorkThread(int(1), inpath, exportFilePath,
                                           True)
             # 连接子进程的信号和槽函数
             self.bwThread.finishSignal.connect(self.callbacklog)
             # 开始执行 run() 函数里的内容
             self.bwThread.start()
         else:
             self.setTextBrowser("文件路径不能为空")
             self.pushButton.setDisabled(False)
     except Exception as err:
         self.pushButton.setDisabled(False)
         self.setTextBrowser("校验失败!错误描述:" + str(err))
Example #6
0
    def subprocess(self):
        #from threads import BigWorkThread

        if self.radioButton.isChecked():
            line=[1,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_2.isChecked():
            line=[2,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_3.isChecked():
            line=[3,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_4.isChecked():
            line=[4,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_5.isChecked():
            line=[5,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        else:
            line=[]
        #创建子进程
        self.bwThread = BigWorkThread(line)

        self.connect(self.bwThread,QtCore.SIGNAL("where"),self.update)
        self.connect(self.bwThread,QtCore.SIGNAL("showtxt"),self.showtxt)
        self.connect(self.bwThread,QtCore.SIGNAL("finish_show"),self.finish_show)
        self.connect(self.bwThread,QtCore.SIGNAL("finddocfile"),self.finddocfile)
		#开始执行子进程run()函数里的内容
        self.bwThread.start()
Example #7
0
class Ui_Dialog(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.txt = u"- - - - - - - - - - - - - - - - - - - - -\n- 文档批量替换工具2.0   ---Root lee \n- - - - - - - - - - - - - - - - - - - - -\n"
        self.setupUi(self)
        self.retranslateUi(self)
        self.setWindowIcon(QtGui.QIcon('Word.png'))

    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.setFixedSize(399, 348)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/新前缀/Word.png")),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Dialog.setWindowIcon(icon)
        self.radioButton = QtGui.QRadioButton(Dialog)
        self.radioButton.setGeometry(QtCore.QRect(20, 30, 371, 16))
        self.radioButton.setObjectName(_fromUtf8("radioButton"))
        self.radioButton_2 = QtGui.QRadioButton(Dialog)
        self.radioButton_2.setGeometry(QtCore.QRect(20, 50, 351, 16))
        self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
        self.radioButton_3 = QtGui.QRadioButton(Dialog)
        self.radioButton_3.setGeometry(QtCore.QRect(100, 30, 351, 16))
        self.radioButton_3.setObjectName(_fromUtf8("radioButton_3"))
        self.radioButton_4 = QtGui.QRadioButton(Dialog)
        self.radioButton_4.setGeometry(QtCore.QRect(100, 50, 351, 16))
        self.radioButton_4.setObjectName(_fromUtf8("radioButton_4"))
        self.radioButton_5 = QtGui.QRadioButton(Dialog)
        self.radioButton_5.setGeometry(QtCore.QRect(180, 30, 351, 16))
        self.radioButton_5.setObjectName(_fromUtf8("radioButton_3"))

        self.progressBar = QtGui.QProgressBar(Dialog)
        self.progressBar.setGeometry(QtCore.QRect(10, 190, 391, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName(_fromUtf8("progressBar"))
        self.progressBar.hide()
        self.line = QtGui.QFrame(Dialog)
        self.line.setGeometry(QtCore.QRect(0, 70, 401, 16))
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName(_fromUtf8("line"))
        self.line_2 = QtGui.QFrame(Dialog)
        self.line_2.setGeometry(QtCore.QRect(0, 170, 401, 20))
        self.line_2.setFrameShape(QtGui.QFrame.HLine)
        self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_2.setObjectName(_fromUtf8("line_2"))
        self.textEdit = QtGui.QTextEdit(Dialog)
        self.textEdit.setGeometry(QtCore.QRect(10, 220, 371, 111))
        self.textEdit.setObjectName(_fromUtf8("textEdit"))
        self.line_3 = QtGui.QFrame(Dialog)
        self.line_3.setGeometry(QtCore.QRect(0, 120, 401, 16))
        self.line_3.setFrameShape(QtGui.QFrame.HLine)
        self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_3.setObjectName(_fromUtf8("line_3"))
        self.label_3 = QtGui.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(0, 10, 161, 16))
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(20, 90, 291, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(320, 90, 75, 23))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.label = QtGui.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(10, 136, 54, 31))
        self.label.setObjectName(_fromUtf8("label"))
        self.lineEdit_2 = QtGui.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(30, 140, 113, 20))
        self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
        self.label_2 = QtGui.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(150, 130, 54, 41))
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.lineEdit_3 = QtGui.QLineEdit(Dialog)
        self.lineEdit_3.setGeometry(QtCore.QRect(190, 140, 113, 20))
        self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(320, 140, 75, 23))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.label_4 = QtGui.QLabel(Dialog)
        self.label_4.setGeometry(QtCore.QRect(323, 140, 61, 21))
        self.label_4.setObjectName(_fromUtf8("label_4"))
        self.label_5 = QtGui.QLabel(Dialog)
        self.label_5.setGeometry(QtCore.QRect(150, 180, 154, 41))
        self.label_5.setObjectName(_fromUtf8("label_5"))

        self.retranslateUi(Dialog)
        QtCore.QObject.connect(self.pushButton_2,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               self.start_update_ui)
        QtCore.QObject.connect(self.pushButton,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               self.showDialog)

        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "文档批量替换软件", None))
        self.radioButton.setText(_translate("Dialog", ".doc", None))
        self.radioButton_2.setText(_translate("Dialog", ".docx", None))
        self.radioButton_3.setText(_translate("Dialog", ".xls", None))
        self.radioButton_4.setText(_translate("Dialog", ".xlsx", None))
        self.radioButton_5.setText(_translate("Dialog", ".txt", None))

        self.textEdit.setText(self.txt)
        self.label_3.setText(_translate("Dialog", "   选择文件类型:", None))
        self.pushButton.setText(_translate("Dialog", "选择目录", None))
        self.label.setText(_translate("Dialog", "将", None))
        self.label_2.setText(_translate("Dialog", "替换成", None))
        self.pushButton_2.setText(_translate("Dialog", "确定", None))
        self.label_4.setText(_translate("Dialog", "正在替换..", None))
        self.label_4.hide()
        self.label_5.setText(_translate("Dialog", "恭喜你,替换完成!", None))
        self.label_5.hide()
        self.lineEdit_2.setText(u'')
        self.lineEdit_3.setText(u'')

    def subprocess(self):
        #from threads import BigWorkThread

        if self.radioButton.isChecked():
            line = [
                1,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_2.isChecked():
            line = [
                2,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_3.isChecked():
            line = [
                3,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_4.isChecked():
            line = [
                4,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        elif self.radioButton_5.isChecked():
            line = [
                5,
                str(self.lineEdit.text().toLocal8Bit()),
                str(self.lineEdit_2.text().toLocal8Bit()),
                str(self.lineEdit_3.text().toLocal8Bit())
            ]
        else:
            line = []
        #创建子进程
        self.bwThread = BigWorkThread(line)

        self.connect(self.bwThread, QtCore.SIGNAL("where"), self.update)
        self.connect(self.bwThread, QtCore.SIGNAL("showtxt"), self.showtxt)
        self.connect(self.bwThread, QtCore.SIGNAL("finish_show"),
                     self.finish_show)
        self.connect(self.bwThread, QtCore.SIGNAL("finddocfile"),
                     self.finddocfile)
        #开始执行子进程run()函数里的内容
        self.bwThread.start()

    #点击确定后,UI的更新和子进程的调用
    def start_update_ui(self):
        button = QtGui.QMessageBox.question(
            self, u"警告", u"本操作会直接修改所选目录里的文件,\n请确保重要文件已经备份!\n是否继续?",
            QtGui.QMessageBox.Ok | QtGui.QMessageBox.Cancel,
            QtGui.QMessageBox.Ok)
        if button == QtGui.QMessageBox.Ok:
            self.progressBar.show()  #显示进度条
            self.label_4.show()  #显示“替换中”文本
            self.label_5.hide()  #隐藏替换完成按钮
            self.pushButton_2.hide()  #隐藏“确定”按钮
            self.subprocess()  #创建新进程
        elif button == QtGui.QMessageBox.Cancel:
            pass

    #更新进度条
    def update(self, where):
        self.progressBar.setProperty("value", where)
#显示一共发现多少相应文件

    def finddocfile(self, i):
        self.txt = u"一共发现 %d 个文件..\n" % i
        self.textEdit.setText(self.txt)

#子进程结束后的界面更新以及显示错误文件

    def finish_show(self, errorlist):
        self.txt = self.txt + u"- - - - - - - - - - - \n批量替换结束!\n"
        if errorlist:
            self.txt = self.txt + u"以下个文件替换时发生错误:\n(错误文件列表已保存至 filelog.txt)\n"
            try:
                logfile = open('logfile.txt', 'w')
                print >> logfile, errorlist
                logfile.close()
            except:
                pass
        self.txt = self.txt + errorlist.decode('gbk')
        self.textEdit.setText(self.txt)
        #self.label_4.setText(_translate("Dialog", "替换成功!", None))
        self.pushButton_2.show()  #显示确认按钮,以便进行下次替换
        self.label_4.hide()  #隐藏“替换中”文本
        self.label_5.show()

    def showtxt(self, what):
        self.txt = self.txt + what.decode('gbk') + u"替换成功!\n"
        self.textEdit.setText(self.txt)

    #文件打开框
    def showDialog(self):
        filename = QtGui.QFileDialog.getExistingDirectory(
            self, 'Open file', '/home')
        self.lineEdit.setText("%s" % filename)
Example #8
0
class Ui_Dialog(QtGui.QWidget):
    def  __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.txt = u"- - - - - - - - - - - - - - - - - - - - -\n- 文档批量替换工具2.0   ---Root lee \n- - - - - - - - - - - - - - - - - - - - -\n"
        self.setupUi(self)
        self.retranslateUi(self)
        self.setWindowIcon(QtGui.QIcon('Word.png'))
    def setupUi(self, Dialog):
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.setFixedSize(399, 348)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/新前缀/Word.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Dialog.setWindowIcon(icon)
        self.radioButton = QtGui.QRadioButton(Dialog)
        self.radioButton.setGeometry(QtCore.QRect(20, 30, 371, 16))
        self.radioButton.setObjectName(_fromUtf8("radioButton"))
        self.radioButton_2 = QtGui.QRadioButton(Dialog)
        self.radioButton_2.setGeometry(QtCore.QRect(20, 50, 351, 16))
        self.radioButton_2.setObjectName(_fromUtf8("radioButton_2"))
        self.radioButton_3 = QtGui.QRadioButton(Dialog)
        self.radioButton_3.setGeometry(QtCore.QRect(100, 30, 351, 16))
        self.radioButton_3.setObjectName(_fromUtf8("radioButton_3"))
        self.radioButton_4 = QtGui.QRadioButton(Dialog)
        self.radioButton_4.setGeometry(QtCore.QRect(100, 50, 351, 16))
        self.radioButton_4.setObjectName(_fromUtf8("radioButton_4"))        
        self.radioButton_5 = QtGui.QRadioButton(Dialog)
        self.radioButton_5.setGeometry(QtCore.QRect(180, 30, 351, 16))
        self.radioButton_5.setObjectName(_fromUtf8("radioButton_3"))        
        
        self.progressBar = QtGui.QProgressBar(Dialog)
        self.progressBar.setGeometry(QtCore.QRect(10, 190, 391, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName(_fromUtf8("progressBar"))
        self.progressBar.hide()
        self.line = QtGui.QFrame(Dialog)
        self.line.setGeometry(QtCore.QRect(0, 70, 401, 16))
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName(_fromUtf8("line"))
        self.line_2 = QtGui.QFrame(Dialog)
        self.line_2.setGeometry(QtCore.QRect(0, 170, 401, 20))
        self.line_2.setFrameShape(QtGui.QFrame.HLine)
        self.line_2.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_2.setObjectName(_fromUtf8("line_2"))
        self.textEdit = QtGui.QTextEdit(Dialog)
        self.textEdit.setGeometry(QtCore.QRect(10, 220, 371, 111))
        self.textEdit.setObjectName(_fromUtf8("textEdit"))
        self.line_3 = QtGui.QFrame(Dialog)
        self.line_3.setGeometry(QtCore.QRect(0, 120, 401, 16))
        self.line_3.setFrameShape(QtGui.QFrame.HLine)
        self.line_3.setFrameShadow(QtGui.QFrame.Sunken)
        self.line_3.setObjectName(_fromUtf8("line_3"))
        self.label_3 = QtGui.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(0, 10, 161, 16))
        self.label_3.setObjectName(_fromUtf8("label_3"))
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(20, 90, 291, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(320, 90, 75, 23))
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.label = QtGui.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(10, 136, 54, 31))
        self.label.setObjectName(_fromUtf8("label"))
        self.lineEdit_2 = QtGui.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(30, 140, 113, 20))
        self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
        self.label_2 = QtGui.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(150, 130, 54, 41))
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.lineEdit_3 = QtGui.QLineEdit(Dialog)
        self.lineEdit_3.setGeometry(QtCore.QRect(190, 140, 113, 20))
        self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3"))
        self.pushButton_2 = QtGui.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(320, 140, 75, 23))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.label_4 = QtGui.QLabel(Dialog)
        self.label_4.setGeometry(QtCore.QRect(323, 140, 61, 21))
        self.label_4.setObjectName(_fromUtf8("label_4"))
        self.label_5 = QtGui.QLabel(Dialog)
        self.label_5.setGeometry(QtCore.QRect(150, 180, 154, 41))
        self.label_5.setObjectName(_fromUtf8("label_5"))

        self.retranslateUi(Dialog)
        QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")), self.start_update_ui)
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.showDialog)

        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(_translate("Dialog", "文档批量替换软件", None))
        self.radioButton.setText(_translate("Dialog", ".doc", None))
        self.radioButton_2.setText(_translate("Dialog", ".docx", None))
        self.radioButton_3.setText(_translate("Dialog", ".xls", None))
        self.radioButton_4.setText(_translate("Dialog", ".xlsx", None))
        self.radioButton_5.setText(_translate("Dialog", ".txt", None))
        
        self.textEdit.setText(self.txt)
        self.label_3.setText(_translate("Dialog", "   选择文件类型:", None))
        self.pushButton.setText(_translate("Dialog", "选择目录", None))
        self.label.setText(_translate("Dialog", "将", None))
        self.label_2.setText(_translate("Dialog", "替换成", None))
        self.pushButton_2.setText(_translate("Dialog", "确定", None))
        self.label_4.setText(_translate("Dialog", "正在替换..", None))
        self.label_4.hide()
        self.label_5.setText(_translate("Dialog", "恭喜你,替换完成!", None))
        self.label_5.hide()
        self.lineEdit_2.setText(u'')
        self.lineEdit_3.setText(u'')
        
    def subprocess(self):
        #from threads import BigWorkThread

        if self.radioButton.isChecked():
            line=[1,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_2.isChecked():
            line=[2,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_3.isChecked():
            line=[3,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_4.isChecked():
            line=[4,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        elif self.radioButton_5.isChecked():
            line=[5,str(self.lineEdit.text().toLocal8Bit()),str(self.lineEdit_2.text().toLocal8Bit()),str(self.lineEdit_3.text().toLocal8Bit())]
        else:
            line=[]
        #创建子进程
        self.bwThread = BigWorkThread(line)

        self.connect(self.bwThread,QtCore.SIGNAL("where"),self.update)
        self.connect(self.bwThread,QtCore.SIGNAL("showtxt"),self.showtxt)
        self.connect(self.bwThread,QtCore.SIGNAL("finish_show"),self.finish_show)
        self.connect(self.bwThread,QtCore.SIGNAL("finddocfile"),self.finddocfile)
		#开始执行子进程run()函数里的内容
        self.bwThread.start()

    #点击确定后,UI的更新和子进程的调用
    def start_update_ui(self):
        button=QtGui.QMessageBox.question(self,u"警告",u"本操作会直接修改所选目录里的文件,\n请确保重要文件已经备份!\n是否继续?",QtGui.QMessageBox.Ok|QtGui.QMessageBox.Cancel,QtGui.QMessageBox.Ok)
        if button==QtGui.QMessageBox.Ok:
            self.progressBar.show()  #显示进度条
            self.label_4.show()   #显示“替换中”文本
            self.label_5.hide()  #隐藏替换完成按钮
            self.pushButton_2.hide()   #隐藏“确定”按钮
            self.subprocess()   #创建新进程
        elif button==QtGui.QMessageBox.Cancel:
            pass
    #更新进度条
    def update(self,where):
        self.progressBar.setProperty("value", where)
	#显示一共发现多少相应文件
    def finddocfile(self,i):
        self.txt = u"一共发现 %d 个文件..\n" %i
        self.textEdit.setText(self.txt)
	#子进程结束后的界面更新以及显示错误文件
    def finish_show(self,errorlist):
        self.txt = self.txt + u"- - - - - - - - - - - \n批量替换结束!\n"
        if errorlist:
            self.txt = self.txt + u"以下个文件替换时发生错误:\n(错误文件列表已保存至 filelog.txt)\n"
            try:
                logfile = open('logfile.txt', 'w')
                print >> logfile, errorlist
                logfile.close()
            except:
                pass
        self.txt = self.txt +errorlist.decode('gbk')
        self.textEdit.setText(self.txt)
        #self.label_4.setText(_translate("Dialog", "替换成功!", None))
        self.pushButton_2.show()   #显示确认按钮,以便进行下次替换
        self.label_4.hide()   #隐藏“替换中”文本
        self.label_5.show()
    
    def showtxt(self,what):
        self.txt = self.txt + what.decode('gbk') + u"替换成功!\n"
        self.textEdit.setText(self.txt)
    #文件打开框
    def showDialog(self):
        filename = QtGui.QFileDialog.getExistingDirectory(self, 'Open file','/home')
        self.lineEdit.setText("%s" %filename)
Example #9
0
class Ui_dialog(QtGui.QWidget):
    def setupUi(self, dialog):
        self.process = 0
        dialog.setFixedSize(400, 300)
        dialog.setObjectName(_fromUtf8("dialog"))
        dialog.resize(400, 300)
        dialog.setWindowIcon(QtGui.QIcon('Word.png'))
        self.startButton = QtGui.QPushButton(dialog)
        self.startButton.setGeometry(QtCore.QRect(140, 70, 101, 61))
        self.startButton.setObjectName(_fromUtf8("startButton"))
        self.progressBar = QtGui.QProgressBar(dialog)
        self.progressBar.setEnabled(True)
        self.progressBar.setGeometry(QtCore.QRect(30, 140, 351, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setTextVisible(True)
        self.progressBar.hide()
        self.progressBar.setObjectName(_fromUtf8("progressBar"))
        self.lineEdit = QtGui.QLineEdit(dialog)
        self.lineEdit.setGeometry(QtCore.QRect(30, 30, 251, 20))
        self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
        self.selectButton = QtGui.QPushButton(dialog)
        self.selectButton.setGeometry(QtCore.QRect(290, 30, 91, 23))
        self.selectButton.setObjectName(_fromUtf8("selectButton"))
        self.textBrowser = QtGui.QTextBrowser(dialog)
        self.textBrowser.setGeometry(QtCore.QRect(30, 170, 321, 91))
        self.textBrowser.setObjectName(_fromUtf8("textBrowser"))

        self.retranslateUi(dialog)
        QtCore.QMetaObject.connectSlotsByName(dialog)

        #信号列表:
        QtCore.QObject.connect(self.startButton,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               self.start_update_ui)
        QtCore.QObject.connect(self.selectButton,
                               QtCore.SIGNAL(_fromUtf8("clicked()")),
                               self.showDialog)

    def retranslateUi(self, dialog):
        dialog.setWindowTitle(_translate("dialog", "幅相校正软件", None))
        self.startButton.setText(_translate("dialog", "开始转换", None))
        self.selectButton.setText(_translate("dialog", "选择AD数据文件", None))
        self.textBrowser.setHtml(
            _translate(
                "dialog",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600;\">软件说明:</span></p>\n"
                "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#ff0000;\">AD采集数据.dat</span><span style=\" color:#0000ff;\">  </span><span style=\" color:#000000;\">==&gt;&gt;</span><span style=\" color:#0000ff;\">幅相系数记录.dat</span></p>\n"
                "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">----------------------------------</p>\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">本软件适用于将声纳采集到的AD数据文件计算得到幅相校正系数,并转换为适用于写入声纳flash中的文件。</p>\n"
                "<p align=\"right\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">---Powered by Root_lee</p></body></html>",
                None))

    #子进程处理数据
    def subprocess(self):
        file_path = str(self.lineEdit.text().toLocal8Bit())

        self.bwThread = BigWorkThread(file_path)
        self.connect(self.bwThread, QtCore.SIGNAL("where"), self.update)
        self.connect(self.bwThread, QtCore.SIGNAL("finish_show"),
                     self.finish_show)
        self.connect(self.bwThread, QtCore.SIGNAL("start_matlab"),
                     self.start_matlab)
        self.bwThread.start()

    def start_update_ui(self):
        self.progressBar.show()  #显示进度条
        #self.label_4.show()   #显示“替换中”文本
        #self.label_5.hide()  #隐藏替换完成按钮
        #self.pushButton_2.hide()   #隐藏“确定”按钮
        self.startButton.setEnabled(False)  #不使能开始按钮
        self.startButton.setText(_translate("dialog", "转换中...",
                                            None))  #将按钮改成转换中
        #for progress_value in range(99):
        #    self.progressBar.setProperty("value", progress_value)
        self.subprocess()  #创建新进程

    #文件打开框
    def showDialog(self):
        #filename = QtGui.QFileDialog.getExistingDirectory(self, 'Open file','/home')
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file', 'C:',
                                                     u"AD采集数据 (*.dat)")
        self.lineEdit.setText("%s" % filename)

    def update(self, where):
        self.progressBar.setProperty("value", where)

    def start_matlab(self):  #本函数主要用于进度条的优化显示
        for i in range(4):
            self.process = self.process + 20
            self.progressBar.setProperty("value", self.process)
            time.sleep(1)

    def finish_show(self):

        self.startButton.setEnabled(True)  #使能开始按钮
        self.progressBar.setProperty("value", 100)
        self.startButton.setText(_translate("dialog", "开始转换", None))
        QtGui.QMessageBox.information(self, u'文件转换完成',
                                      u'文件已经转换完成!\n<幅相系数记录.dat>文件存放在本软件目录!')
        self.progressBar.hide()
Example #10
0
class MyDialog(Ui_validateIdentityUI):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)
        # 调用内部的 setupUi() ,本身对象作为参数
        self.setupUi(self)
        # 连接 QPushButton 的点击信号到槽 BigWork()
        self.pushButton.clicked.connect(self.validate_excel)
        self.pushButton_2.clicked.connect(self.stop_validate)

    def validate_excel(self):
        try:
            #把按钮禁用掉
            self.pushButton.setDisabled(True)
            #import 自己的进程类
            from threads import BigWorkThread
            #新建对象,传入参数
            filePath = self.lineEdit.text()
            print(filePath)
            houzui = ""
            if len(filePath) > 0:
                list = filePath.split('/')
                zui = list[len(list) - 1]
                houzui = zui.split(".")
                if houzui[1] != "xlsx":
                    raise Exception("文件类型不正确!")
                result_name = houzui[0] + "_" + "校验结果" + "." + houzui[1]
                path = ""
                for i in range(len(list) - 1):
                    path += list[i] + "\\"
                inpath = path + zui
                exportFilePath = path + result_name
                print(inpath)
                print(exportFilePath)
                self.bwThread = BigWorkThread(int(1), inpath, exportFilePath,
                                              True)
                # 连接子进程的信号和槽函数
                self.bwThread.finishSignal.connect(self.callbacklog)
                # 开始执行 run() 函数里的内容
                self.bwThread.start()
            else:
                self.setTextBrowser("文件路径不能为空")
                self.pushButton.setDisabled(False)
        except Exception as err:
            self.pushButton.setDisabled(False)
            self.setTextBrowser("校验失败!错误描述:" + str(err))

    #增加形参准备接受返回值 ls
    def callbacklog(self, ls):
        #使用传回的返回值
        for word in ls:
            self.setTextBrowser(
                time.strftime("%Y/%m/%d %H:%M", time.localtime()) + " " + word)
            print(
                time.strftime("%Y/%m/%d %H:%M", time.localtime()) + " " + word)
        #恢复按钮
        self.pushButton.setDisabled(False)

    def stop_validate(self):
        # 把按钮禁用掉
        self.pushButton_2.setDisabled(True)
        self.bwThread.stop()
        self.pushButton_2.setDisabled(False)