Читаем Введение в Python полностью

В данной статье мы напишем простенькую рисовалку на Python. На этом примере мы потренируемся в создании GUI, использовании макетов компоновки в tkinter, передаче дополнительных аргументов в функцию-обработчик нажатия кнопки и использовании lambda-функции в Python.

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

| from tkinter import *

| class Paint(Frame):

| def __init__(self, parent):

| Frame.__init__(self, parent)

| self.parent = parent

| def main():

| root = Tk()

| root.geometry("1920x1080+300+300")

| app = Paint(root)

| root.mainloop()

| if __name__ == "__main__":

| main()

Запустив этот код вы должны получить простенькое окно, с которым мы будем работать дальше.

Теперь напишем для класса Paint метод setUI, в котором будет задаваться расположение всех кнопок, меток и самого поля для рисования. У нас будет два ряда кнопок, первый ряд с кнопками устанавливающими цвет, второй ряд устанавливает размер кисти для рисования. Под ними будет идти поле для рисования.

Это достаточно объемный метод, однако многие строки повторяются, так что наберитесь терпения:

| def setUI(self):

| self.parent.title("Pythonicway PyPaint") # Устанавливаем название окна

| self.pack(fill=BOTH, expand=1) # Размещаем активные элементы на родительском окне

|

| self.columnconfigure(6, weight=1)

| self.rowconfigure(2, weight=1) # То же самое для третьего ряда

| self.canv = Canvas(self, bg="white") # Создаем поле для рисования, устанавливаем белый фон

| self.canv.grid(row=2, column=0, columnspan=7,

| padx=5, pady=5, sticky=E+W+S+N)

| color_lab = Label(self, text="Color: ") # Создаем метку для кнопок изменения цвета кисти

| color_lab.grid(row=0, column=0, padx=6)

| red_btn = Button(self, text="Red", width=10)

| red_btn.grid(row=0, column=1) # Устанавливаем кнопку первый ряд, вторая колонка

|

| # Создание остальных кнопок повторяет ту же логику, что и создание

| # кнопки установки красного цвета, отличаются лишь аргументы.

|

| green_btn = Button(self, text="Green", width=10)

| green_btn.grid(row=0, column=2)

| blue_btn = Button(self, text="Blue", width=10)

| blue_btn.grid(row=0, column=3)

|

| black_btn = Button(self, text="Black", width=10)

| black_btn.grid(row=0, column=4)

|

| white_btn = Button(self, text="White", width=10)

| white_btn.grid(row=0, column=5)

| size_lab = Label(self, text="Brush size: ") # Создаем метку для кнопок изменения размера кисти

| size_lab.grid(row=1, column=0, padx=5)

| one_btn = Button(self, text="Two", width=10)

| one_btn.grid(row=1, column=1)

|

| two_btn = Button(self, text="Five", width=10)

| two_btn.grid(row=1, column=2)

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных