Python 3.3 GUI с картинкой
от Artorius
Итак создадим оконное приложение,с использованием изображений в качестве фона.
Что нам понадобится:
Python 3.3 - Интерпретатор питон. Скачать тут
Картинка по размеру окна(можно больше).
Большая кружка кофе.
Устанавливаем интерпретатор питона,добавляем к переменной PATH,путь к интерпретатору. У меня "I:\Python33\".
Жмем Пуск и видим(видим?) IDLE (python GUI). Смело жмем на нее. Появляется окошко со стандартным парселтанговским приглашением к вводу ">>>".
Ура! Именно этой штукой мы и будем запускать нашу кулцкодерскую программу. Работать в режиме командной строки нам будет неудобно,
поэтому жмем в левом верхнем углу на меню 'File' > 'New file'(Ctrl+N). В результате чего,появилось пустое окно с гордым названием Untitled.
Собсно это и есть текстовой редактор в котором мы будем работать ( тут даже подсветка синтаксиса есть!(= ).
Для начала укажем кодировку. Хотя третья ветка питона по умолчанию ориентирована на юникод.
Теперь нам необходимо импортировать нужные модули в наш скрипт(иначе откуда мы их возьмем?). Для этого в питоне предусмотрена инструкция.
Для начала подключим основные модули-os,time,tkinter:
Рассмотрим этот кусочек немного подробнее. Подключая модули,мы делаем их код(содержимое),доступным для нашего скрипта,и теперь питоша знает,
что за неведомую функцию мы велим выполнить. Импортируйте модули по порядку стандартные-системные,прикладные,подмодули.
Импортируйте модули,каждый в своей строке,между импортами одна пустая строка ("-Чувак! А давай сделаем проще! import os,time,tkinter. -Не могу! Мне PEP8 не разрешает =(").
Модуль os,содержит инструменты для работы с системой. Модуль time,работает со временем(пожалуйста!).Tkinter-Графическая библиотека.
Инструкция импортирует подмодули для указанного модуля(в нашем случаи все).
И мы начинаем КВН собсно писать программу.
Создадим константу WORK_PATH,в которой будем хранить полный путь к файлу(понадобится нам в будущем,и вообще привыкайте к ней).
. Рассмотрим подробнее.
path()-подмодуль для работы с путями.
abspath()-функция возвращающая абсолютный путь к аргументу(например дескриптору файла).
getcwd()-возвращает путь относительно запущенного скрипта.
Таким образом наша константа может содержать такой путь "C:\Projects\main.py".
Создадим главное окно нашей программы,и присущие ему атрибуты:
Ну вот теперь у нас есть окошко! Но что мы с ним будем делать? Хмм.. Сделаем часы! =)
Вся наша программа может выглядеть так:
Вот,что получилось у меня
clock.rar
Спасибо за прочтение =))
Что нам понадобится:
Python 3.3 - Интерпретатор питон. Скачать тут
Картинка по размеру окна(можно больше).
Большая кружка кофе.
Устанавливаем интерпретатор питона,добавляем к переменной PATH,путь к интерпретатору. У меня "I:\Python33\".
Жмем Пуск и видим(видим?) IDLE (python GUI). Смело жмем на нее. Появляется окошко со стандартным парселтанговским приглашением к вводу ">>>".
Ура! Именно этой штукой мы и будем запускать нашу кулцкодерскую программу. Работать в режиме командной строки нам будет неудобно,
поэтому жмем в левом верхнем углу на меню 'File' > 'New file'(Ctrl+N). В результате чего,появилось пустое окно с гордым названием Untitled.
Собсно это и есть текстовой редактор в котором мы будем работать ( тут даже подсветка синтаксиса есть!(= ).
Для начала укажем кодировку
- #-*-coding:utf-8-*-
Теперь нам необходимо импортировать нужные модули в наш скрипт(иначе откуда мы их возьмем?). Для этого в питоне предусмотрена инструкция
- import
Для начала подключим основные модули-os,time,tkinter:
- import os
- import time
- import tkinter
- from tkinter import *
Рассмотрим этот кусочек немного подробнее. Подключая модули,мы делаем их код(содержимое),доступным для нашего скрипта,и теперь питоша знает,
что за неведомую функцию мы велим выполнить. Импортируйте модули по порядку стандартные-системные,прикладные,подмодули.
Импортируйте модули,каждый в своей строке,между импортами одна пустая строка ("-Чувак! А давай сделаем проще! import os,time,tkinter. -Не могу! Мне PEP8 не разрешает =(").
Модуль os,содержит инструменты для работы с системой. Модуль time,работает со временем(пожалуйста!).Tkinter-Графическая библиотека.
Инструкция
- from
И мы начинаем КВН собсно писать программу.
Создадим константу WORK_PATH,в которой будем хранить полный путь к файлу(понадобится нам в будущем,и вообще привыкайте к ней).
- WORK_PATH=os.path.abspath(os.getcwd())
path()-подмодуль для работы с путями.
abspath()-функция возвращающая абсолютный путь к аргументу(например дескриптору файла).
getcwd()-возвращает путь относительно запущенного скрипта.
Таким образом наша константа может содержать такой путь "C:\Projects\main.py".
Создадим главное окно нашей программы,и присущие ему атрибуты:
- root=Tk()#это и есть то самое главное окошко!
- root.overrideredirect(1)#а теперь мы виджет))аргументы True/False
- root.geometry("100x100+0+0")#задаем размер 100 на 100 пикселей и координаты размещения на экране.
- bg_image=PhotoImage(os.path.join(WORK_PATH,'bg.gif'))#вот нам и пригодился WORK_PATH! os.path.join()-соединяет пути. PhotoImage-загружаем изображение.
- bg=Label(root,image=bg_image)#создаем метку(текст как бэ) но вместо текста ставим изображение(хе-хе,хитрюги =)).
- bg.pack()#заливаем фон.(вообще,это позиционирование,но в данном случае мы именно заливаем фон.
Ну вот теперь у нас есть окошко! Но что мы с ним будем делать? Хмм.. Сделаем часы! =)
- def clock(event):
- time_from_out=time.strftime("%H:%M:%S")
- clock_value=Label(root,bg='black',fg='green',text=time_from_out,font=('Comic Sans MS',8))#создаем текстовую метку,она будет показывать время. bg-фон метки,fg-цвет текста,font-параметры шрифта.
- while event:
- clock_value.place(x='20',y='20')#размещаем наше время
- root.update()#обновляем окошко
Вся наша программа может выглядеть так:
- import os
- import time
- import tkinter
- from tkinter import *
- WORK_PATH=os.path.abspath(os.getcwd())
- root=Tk()
- root.overrideredirect(1)
- root.geometry("100x100+0+0")
- bg_image=PhotoImage(file=os.path.join(WORK_PATH,'bg.gif'))
- bg=Label(root,image=bg_image)
- bg.pack()
- def clock(event):
- while event:
- time_from_out=time.strftime("%H:%M:%S")
- clock_value=Label(root,bg='black',fg='green',text=time_from_out,font=('Comic Sans MS',8))
- clock_value.place(x='22',y='35')
- root.update()
- clock(Event)
- root.mainloop()
Вот,что получилось у меня
![](/forum/img/unknown.png)
Спасибо за прочтение =))