Вдруг пришла идея сделать музыкальную открытку на Python. Почему бы нет?
Приступим.
Для этого конечно нужен графический интерфейс. Воспользуемся уже входящим в стандарт модулем tkinter . Tkinter - это интерфейс Python к GUI Tk.
Импортируем модуль, рисуем окно, пишем в заголовке окна "Hello codeby!" и запрещаем изменять размеры окна по ширине и высоте.
Далее создаём холст с размерами выбранной картинки и прописанным путём к ней. Параметр bg="blue" задаёт цвет фона, если картинка будет недоступна.
Следующим этапом пишем текст. На холсте текст и фон к нему элементарно раскрашиваются кодами цветов без привлечения дополнительных модулей типа colorama. Отступы от текста делаются по осям padx и pady. Позиционирование самого текста на холсте через relx и rely.
Ну что же, осталось прикрутить сюда музычку. Для этого импортируем модуль pygame и укажем путь до MP3. Если нужно чтобы трек звучал не один раз, то в скобках строки mixer.music.play() указывает нужную цифру.
Вот что в итоге у нас вышло:
Скачать демооткрытку
Просто из архива извлеките файлы в корень диска С, либо не забудьте в коде поправить пути на картинку и аудио, если это будет другая директория.
Ну вот и чудненько.
Всё это конечно прекрасно и замечательно, но здесь есть одно небольшое "но". Но ведь если вы решите сделать какую-нибудь поздравительную или романтическую открытку для родных или девушки, то маловероятно что они пользуются питоном )))
Этот вопрос тоже решается, но об этом в следующей статье.
Приступим.
Для этого конечно нужен графический интерфейс. Воспользуемся уже входящим в стандарт модулем tkinter . Tkinter - это интерфейс Python к GUI Tk.
Импортируем модуль, рисуем окно, пишем в заголовке окна "Hello codeby!" и запрещаем изменять размеры окна по ширине и высоте.
Python:
# -*- coding:utf -8 -*-
from tkinter import *
root = Tk()
root.title("Hello codeby!")
root.resizable(width=False, height=False)
Далее создаём холст с размерами выбранной картинки и прописанным путём к ней. Параметр bg="blue" задаёт цвет фона, если картинка будет недоступна.
Python:
C = Canvas(root, bg="blue", height=330, width=500)
filename = PhotoImage(file = "C:\\black_blue.png")
background_label = Label(root, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
Следующим этапом пишем текст. На холсте текст и фон к нему элементарно раскрашиваются кодами цветов без привлечения дополнительных модулей типа colorama. Отступы от текста делаются по осям padx и pady. Позиционирование самого текста на холсте через relx и rely.
Python:
zapis = "\n Hello\n codeby!\n"
label2 = Label(text=zapis, justify=LEFT, fg="#D3D3D3", bg="#000000", font="Serif 24", padx=5, pady=2)
label2.place(relx=.1, rely=.1)
hello = "\n Привет КулХацкерам \n\n форума codeby!\n"
end = Label(text=hello, justify=LEFT, fg="#FF0000", bg="#000000", font="Arial 12", padx=5, pady=1)
end.place(relx=.1, rely=.5)
C.pack()
root.mainloop
Ну что же, осталось прикрутить сюда музычку. Для этого импортируем модуль pygame и укажем путь до MP3. Если нужно чтобы трек звучал не один раз, то в скобках строки mixer.music.play() указывает нужную цифру.
Python:
from pygame import mixer
mixer.init()
mixer.music.load("C:\\key.mp3")
mixer.music.play()
Вот что в итоге у нас вышло:
Python:
# -*- coding:utf -8 -*-
from tkinter import *
from pygame import mixer
root = Tk()
root.title("Hello codeby!")
root.resizable(width=False, height=False)
C = Canvas(root, bg="blue", height=330, width=500)
filename = PhotoImage(file = "C:\\black_blue.png")
background_label = Label(root, image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
zapis = "\n Hello\n codeby!\n"
label2 = Label(text=zapis, justify=LEFT, fg="#D3D3D3", bg="#000000", font="Serif 24", padx=5, pady=2)
label2.place(relx=.1, rely=.1)
hello = "\n Привет КулХацкерам \n\n форума codeby!\n"
end = Label(text=hello, justify=LEFT, fg="#FF0000", bg="#000000", font="Arial 12", padx=5, pady=1)
end.place(relx=.1, rely=.5)
mixer.init()
mixer.music.load("C:\\key.mp3")
mixer.music.play()
C.pack()
root.mainloop
Скачать демооткрытку
Ссылка скрыта от гостей
Просто из архива извлеките файлы в корень диска С, либо не забудьте в коде поправить пути на картинку и аудио, если это будет другая директория.
Ну вот и чудненько.
Всё это конечно прекрасно и замечательно, но здесь есть одно небольшое "но". Но ведь если вы решите сделать какую-нибудь поздравительную или романтическую открытку для родных или девушки, то маловероятно что они пользуются питоном )))
Этот вопрос тоже решается, но об этом в следующей статье.