Категория > Новости > Змеиная почта. Пишем на Python и Qt почтовик с возможностью прикреплять файлы - «Новости»

Змеиная почта. Пишем на Python и Qt почтовик с возможностью прикреплять файлы - «Новости»


5-01-2022, 00:00. Автор: Lee
ска­чать его и уста­новить.

От­кро­ем Qt Designer и в появив­шемся окне выбора пос­тавим галоч­ку на пун­кте Main Window.


Змеиная почта. Пишем на Python и Qt почтовик с возможностью прикреплять файлы - «Новости»
Соз­дание нового окна

За­тем соз­дадим окно при помощи готовых инс­тру­мен­тов, а имен­но Label для тек­ста, Line Edit для строк вво­да, Text Edit для поля вво­да тек­ста, а так­же Push Button для кно­пок. Раз­ложить всё можешь так, как тебе пон­равит­ся, глав­ное — пос­тавить все эле­мен­ты, показан­ные на кар­тинке, и запом­нить их номера. Даль­ше будет понят­но, зачем это.


Ин­терфейс кли­ента

Не забудь в поле вво­да пароля пос­тавить параметр echoMode = Password, что­бы скрыть пароль, а так­же вык­лючить поля, которые могут быть активны толь­ко пос­ле пра­виль­ного вво­да дан­ных. Что­бы это сде­лать, необ­ходимо в поле enabled убрать галоч­ку.


Пос­ле завер­шения работы мое окно выг­лядит как на скрин­шоте.


Сох­раняй документ, и получишь файл с рас­ширени­ем ui, который и будет фай­лом интерфей­са. Я наз­вал его Main.ui. Теперь к коду!


Пер­вым делом импорти­руем две биб­лиоте­ки. Они нуж­ны для работы с Qt 5.


from PyQt5.QtWidgets import *
from PyQt5 import uic

Те­перь про­писы­ваем класс интерфей­са и в нем все фун­кции. У нас будет фун­кция вво­да (login), фун­кция прик­репле­ния фай­ла (attach_sth) и фун­кция отправ­ки сооб­щений (send_mail). Так­же в осно­ве основ лежит фун­кция вызова гра­фичес­кого интерфей­са с демонс­тра­цией окна и акти­ваци­ей трех кно­пок.


class MyGUI(QMainWindow):
def __init__(self):
super(MyGUI, self).__init__()
uic.loadUi('Main.ui', self)
self.show()
self.pushButton.clicked.connect(self.login)
self.pushButton_2.clicked.connect(self.attach_sth)
self.pushButton_3.clicked.connect(self.send_mail)
def login(self):
pass
def attach_sth(self):
pass
def send_mail(self):
pass
app = QApplication([])
windows = MyGUI()
app.exec_()

Здесь инте­рес­на фун­кция app.exec_(). Она оста­нав­лива­ет работу с тер­миналом, что­бы все вза­имо­дей­ствие с при­ложе­нием шло толь­ко через гра­фичес­кий интерфейс.


Код уже мож­но запус­тить! Ты уви­дишь окно с нарисо­ван­ным тобой интерфей­сом, но в нем пока что ничего не будет работать. Конеч­но, мы же еще не опре­дели­ли, как это дол­жно про­исхо­дить.


 

Пишем основную часть


Итак, задача — написать дви­жок. Прис­тупим.



Перейти обратно к новости