Первая программа на PyQt

категория: PyQt
Есть у меня скриптик один на питоне, который форматирует доковский документ .docx и перефодит его в html формат с разными правилами. Мне как-то захотелось сделать приложение для линукса, так как юзать в инете я его не буду – то веб приложение делать нет смысла. Заодно решил поковырять PyQt и в дальнейшем для локальных приложений его использовать. Начнем с установки:
sudo apt install python-qt4
Редактор тоже пригодится, особо не выбирал, пусть будет Qt Designer. Как поставить — думаю всем ясно. Открываем Qt Designer, тыкаем всякие инпуты, текстбоксы, лейблы, батоны, кому, что угодно и нужно для реализации задуманного. У меня получилось так: PyQt program И довольно легко и просто пишется код. Немного гугления и программа работает. Мне нужно было просто вводить информацию в инпуты и немного откоректировав отправлять в мой скрипт, который всю работу выполняет. Код получился такой:
import sys
from PyQt4 import QtGui, uic
#
from parser import get_html_from_docx
#
form_class = uic.loadUiType('parser.ui')[0]  # Load the UI
#
#
class MyProgramClass(QtGui.QMainWindow, form_class):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setupUi(self)
        # Bind the event handler to the button
        self.pushButton.clicked.connect(self.pushButton_clicked)
    #
    def pushButton_clicked(self):
        name = self.nameLineEdit.text()
        in_name = self.numberOfFileSpinBox.value()
        in_path = 'input/%s.docx' % in_name
        out_path = 'output/%s.txt' % in_name
        text = self.textEdit.toPlainText()
        imgs = str(text).split('\n')  # Make list of strings
        video_name = self.videoNameLineEdit.text()
        video_code = self.videoCodeLineEdit.text()
        # Run my script
        try:
            get_html_from_docx(str(name), in_path, out_path, imgs,
                               str(video_name), str(video_code))
            self.status.setText('OK')
        except Exception as e:
            self.status.setText(str(e))
#
app = QtGui.QApplication(sys.argv)
myProgram = MyProgramClass(None)
myProgram.show()
app.exec_()
Думаю и ваше написание первой программы с использованием PyQt не вызовет особых затруднений. Успехов.


blog comments powered by Disqus