#!C:\usr\Python\python # -*- coding: utf-8 -*- import sys from PyQt4 import uic from PyQt4.QtCore import * from PyQt4.QtGui import * from TxtToPDF import PDF def selectFile(): window.File.setText(QFileDialog.getOpenFileName()) def ConvertTxtToPDF(File): window.ConvertTxtToPDFButton.setText(u"Конвертация...") window.ConvertTxtToPDFButton.setCheckable(True) window.ConvertTxtToPDFButton.setChecked(True) pdf = PDF() pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True) pdf.print_chapter(2, 'THE PROS AND CONS', File) pdf.output(File[:-3]+'pdf', 'F') QMessageBox.information(window, u"Info",u"Convert files in "+File[:-3]+u"pdf",buttons=QMessageBox.Close,defaultButton=QMessageBox.Close) window.ConvertTxtToPDFButton.setText(u"Конвертировать") window.ConvertTxtToPDFButton.setChecked(False) app = QApplication(sys.argv) window = uic.loadUi("ui.ui") window.show() QObject.connect(window.SelectTxtFile, SIGNAL('clicked()'), selectFile) QObject.connect(window.ConvertTxtToPDFButton, SIGNAL('clicked()'), lambda : ConvertTxtToPDF(unicode(window.File.text()))) sys.exit(app.exec_())
Проблема заключается в том, что сначала выполняется код:
pdf = PDF() pdf.add_font('DejaVu', '', 'DejaVuSansCondensed.ttf', uni=True) pdf.print_chapter(2, 'THE PROS AND CONS', File) pdf.output(File[:-3]+'pdf', 'F')
, а затем
window.ConvertTxtToPDFButton.setText(u"Конвертация...") window.ConvertTxtToPDFButton.setCheckable(True) window.ConvertTxtToPDFButton.setChecked(True)
Я пытался использовать многопоточность, но кнопка изменяется только после сохранения PDF.