Init
This commit is contained in:
136
main.py
Normal file
136
main.py
Normal file
@@ -0,0 +1,136 @@
|
||||
import sys
|
||||
from PyQt5 import uic
|
||||
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QMessageBox, QFileDialog
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QIcon
|
||||
from config import *
|
||||
from base64 import b64encode
|
||||
from os.path import exists
|
||||
|
||||
|
||||
class MainForm(QMainWindow):
|
||||
def __init__(self, cfg):
|
||||
super().__init__()
|
||||
uic.loadUi('ui/MainForm.ui', self)
|
||||
self.setWindowIcon(QIcon('ui/sign.ico'))
|
||||
|
||||
self.cfg = cfg
|
||||
self.fname_txt.setText(cfg['General']['firstname'])
|
||||
self.lname_txt.setText(cfg['General']['lastname'])
|
||||
self.jobtitle_txt.setText(cfg['General']['jobtitle'])
|
||||
self.mgts_txt.setText(cfg['General']['gtsphone'])
|
||||
self.mgtsadd_txt.setText(cfg['General']['gtsphoneadd'])
|
||||
self.mobile_txt.setText(cfg['General']['mobilephone'])
|
||||
self.template_txt.setText(cfg['General']['template'])
|
||||
self.logo_txt.setText(cfg['General']['logo'])
|
||||
|
||||
self.selecttemplate_btn.clicked.connect(self.selecttemplate_btn_clicked)
|
||||
self.selectlogo_btn.clicked.connect(self.selectlogo_btn_clicked)
|
||||
self.generate_btn.clicked.connect(self.generate_btn_clicked)
|
||||
self.copy_btn.clicked.connect(self.copy_btn_clicked)
|
||||
|
||||
|
||||
def selecttemplate_btn_clicked(self):
|
||||
tmpl = QFileDialog.getOpenFileName(self, 'Выбрать файл шаблона', '', filter='Шаблон HTML (*.html)')[0]
|
||||
if tmpl:
|
||||
self.template_txt.setText(tmpl)
|
||||
self.template_txt.setFocus()
|
||||
|
||||
|
||||
def selectlogo_btn_clicked(self):
|
||||
logo = QFileDialog.getOpenFileName(self, 'Выбрать файл логотипа', '', filter='Логотип PNG (*.png)')[0]
|
||||
if logo:
|
||||
self.logo_txt.setText(logo)
|
||||
self.logo_txt.setFocus()
|
||||
|
||||
|
||||
def generate_btn_clicked(self):
|
||||
fname = self.fname_txt.text()
|
||||
lname = self.lname_txt.text()
|
||||
jobtitle = self.jobtitle_txt.text()
|
||||
if self.mgts_txt.text() == '+7 () --':
|
||||
mgts = ''
|
||||
else:
|
||||
mgts = self.mgts_txt.text()
|
||||
mgtsadd = self.mgtsadd_txt.text()
|
||||
if self.mobile_txt.text() == '+7 () --':
|
||||
mobile = ''
|
||||
else:
|
||||
mobile = self.mobile_txt.text()
|
||||
template = self.template_txt.text()
|
||||
logo = self.logo_txt.text()
|
||||
|
||||
username = fname + ' ' + lname
|
||||
|
||||
if not exists(template):
|
||||
alrt = QMessageBox(self)
|
||||
alrt.setWindowIcon(self.windowIcon())
|
||||
alrt.setWindowTitle('Ошибка')
|
||||
alrt.setText('Не найден шаблон!')
|
||||
alrt.setStandardButtons(QMessageBox.Ok)
|
||||
alrt.setIcon(QMessageBox.Warning)
|
||||
alrt.exec_()
|
||||
return
|
||||
|
||||
with open(template, 'r', encoding='utf-8') as f:
|
||||
text = f.read()
|
||||
|
||||
if not exists(logo):
|
||||
alrt = QMessageBox(self)
|
||||
alrt.setWindowIcon(self.windowIcon())
|
||||
alrt.setWindowTitle('Ошибка')
|
||||
alrt.setText('Не найден логотип!')
|
||||
alrt.setStandardButtons(QMessageBox.Ok)
|
||||
alrt.setIcon(QMessageBox.Warning)
|
||||
alrt.exec_()
|
||||
return
|
||||
|
||||
with open(logo, 'rb') as f:
|
||||
logo_b64 = 'data:image/png;base64, ' + str(b64encode(f.read()))[2:-1]
|
||||
|
||||
workphone = mgts
|
||||
if mgtsadd:
|
||||
workphone += ' доб. ' + mgtsadd
|
||||
|
||||
text = text.format(username=username, logo=logo_b64, jobtitle=jobtitle, mgts=workphone, mobile=mobile)
|
||||
self.view_txt.setHtml(text)
|
||||
self.html_txt.setPlainText(text)
|
||||
|
||||
cfg['General']['firstname'] = fname
|
||||
cfg['General']['lastname'] = lname
|
||||
cfg['General']['jobtitle'] = jobtitle
|
||||
cfg['General']['gtsphone'] = mgts
|
||||
cfg['General']['gtsphoneadd'] = mgtsadd
|
||||
cfg['General']['mobilephone'] = mobile
|
||||
cfg['General']['template'] = template
|
||||
cfg['General']['logo'] = logo
|
||||
|
||||
save_config(cfg)
|
||||
|
||||
def copy_btn_clicked(self):
|
||||
self.html_txt.selectAll()
|
||||
self.html_txt.copy()
|
||||
alrt = QMessageBox(self)
|
||||
alrt.setWindowIcon(self.windowIcon())
|
||||
alrt.setWindowTitle('Сообщение')
|
||||
alrt.setText('Текст скопирован!')
|
||||
alrt.setStandardButtons(QMessageBox.Ok)
|
||||
alrt.setIcon(QMessageBox.Information)
|
||||
alrt.exec_()
|
||||
|
||||
|
||||
def center(self):
|
||||
qr = self.frameGeometry()
|
||||
cp = QDesktopWidget().availableGeometry().center()
|
||||
qr.moveCenter(cp)
|
||||
self.move(qr.topLeft())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QApplication(sys.argv)
|
||||
ex = MainForm(cfg)
|
||||
ex.setWindowFlags(Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint)
|
||||
ex.setFixedSize(680, 760)
|
||||
ex.center()
|
||||
ex.show()
|
||||
sys.exit(app.exec_())
|
||||
Reference in New Issue
Block a user