Найти в Дзене
Жизнь IT-ишника

Первые шаги. Программа для интересного человека из Абхазии. Часть 2: технические подробности

Доброго времени суток уважаемые читатели. Это продолжение моей предыдущей статьи о создании программы-генератора лотерейных билетов. В этой части будут рассмотрены технические аспекты реализации данного проекта. По требованию заказчика были определены основные поля, заполняемые пользователем программы. После заполнения каждого поля создавалась заданная лотерея. Работа с excel из python Используемая библиотека xlwt позволяет, как редактировать уже существующие документы, так и создавать новые. Этим как раз я и воспользовался. Для начала установим библиотеку в проект: pip install xlwt Для того что бы начать работу с документами excel нужно импортировать библиотеку в наш проект, для этого нужно в свой исходный код добавить одну стоку: import xlwt as excel Так как нам интересен вариант создания нового документа, создадим необходимый экземпляр класса wb = excel.Workbook()
ws = wb.add_sheet('Bilets') Важный момент! Для полноценной работы с книгой excel ей необходим рабочий лист, который я
Оглавление

Доброго времени суток уважаемые читатели. Это продолжение моей предыдущей статьи о создании программы-генератора лотерейных билетов. В этой части будут рассмотрены технические аспекты реализации данного проекта.

По требованию заказчика были определены основные поля, заполняемые пользователем программы. После заполнения каждого поля создавалась заданная лотерея.

  • Количество билетов
  • Количество полей в каждом билете
  • Номиналы выигрышей
  • Номиналы золотых билетов и их количество (100% выигрыш)
  • Серия билетов
Основные изменяющиеся поля
Основные изменяющиеся поля

Работа с excel из python

Используемая библиотека xlwt позволяет, как редактировать уже существующие документы, так и создавать новые. Этим как раз я и воспользовался.

Для начала установим библиотеку в проект:

pip install xlwt

Для того что бы начать работу с документами excel нужно импортировать библиотеку в наш проект, для этого нужно в свой исходный код добавить одну стоку:

import xlwt as excel

Так как нам интересен вариант создания нового документа, создадим необходимый экземпляр класса

wb = excel.Workbook()
ws = wb.add_sheet('Bilets')

Важный момент! Для полноценной работы с книгой excel ей необходим рабочий лист, который я назвал "Bilets"

После создания книги и рабочего листа нам открываются возможности по редактированию данной книги.

ws.write(r, c, numb)

Функция write позволяет записать значение в определенную ячейку на листе

А с помощью функции save можно сохранить все ваши данные на диск

wb.save('Лотерея.xls')

Сохраненный файл появится в директории вашей python программы, если не указан абсолютный путь к файлу.

Графический интерфейс на PyQt5

Все начинается с установки необходимой библиотеки и редактора форм

pip install pyqt5

Запускаем скаченный ранее Qt Designer:

Интерфейс Qt Designer:  1 - Список доступных виджетов. 2 - Рабочая область. 3 - Иерархия объектов на форме. 4 - Свойства размещенного виджета
Интерфейс Qt Designer: 1 - Список доступных виджетов. 2 - Рабочая область. 3 - Иерархия объектов на форме. 4 - Свойства размещенного виджета

Qt Designer позволяет создавать графические интерфейсы для различных программ. Так же её можно использовать не только в python проектах, но и в проектах на других написанных на других языках программирования, таких как С++.

После того как дизайн готов, программа сохраняет его в формате .ui. Это xml документ содержащий всю необходимую информацию. В python его можно использовать сразу или преобразовать в python файл с помощью утилиты встроенной в библиотеку PyQt5 командой

pyuic5 <путь к вашему ui файлу> -o <путь для сохранения python файла>.py

Важно!

Если вы не используете виртуальную среду исполнения, то необходимо указывать абсолютный путь к утилите pyuic5

Объединение всех частей в единое целое

После того как я подготовил все необходимые компоненты проекта настало время заставить работать их как единое целое. Для этого импортируем все части в один python файл:

import sys
from PyQt5 import QtWidgets
import lots as lot
import mainGUI_V2 as GUI

Создаем класс отвечающий за работу нашего приложения. Он будет использовать все что мы создали ранее.

class ExampleApp(QtWidgets.QMainWindow, GUI.Ui_MainWindow):
def __init__(self):
.......
# функции для работы кнопок
def set_win100(self):
.......

def set_count_ticket(self):
.......

def set_count_field(self):
.......

def set_win_comb(self):
.......

def set_serial(self):
.......

def run_lots(self):
.......

Не мало важным моментом является то, что необходимо написать и сопоставить действия (функции) и кнопки на нашей форме.

После этого можно смело запустить проект и наслаждаться.

app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
window = ExampleApp() # Создаём объект класса ExampleApp
window.show() # Показываем окно
app.exec_() # и запускаем приложение

Заключение

Это был мой первый серьезный проект в жизни, он научил меня многому. В следующих статьях будут рассказаны не только о моих проектах, но и будут представлены руководства для тех, кто только начинает изучать программирование.

p.s.

Огромное спасибо, что дочитал(-a) мою статью до конца. Надеюсь увидимся еще не раз на моем канале в Яндекс Дзен.