Не ругайтесь сильно, программирование - лишь мое хобби, и я только учусь.
Идея ко мне пришла неожиданно, я просто задумался : "хм, а можно же совместить обои и погоду, но почему никто еще так не сделал?" просто даже ради того чтобы сделать.
ВНИМАНИЕ! Речь зайдет о самом проекте как таковом, здесь не будет исходного кода!
Итак, для моего проекта мне понадобилось :
Pillow - дабы можно было "генерировать" саму картинку которая и будет обоями
Pyautogui - для возможности делать скриншот
Pyowm - библиотека предоставляющая узнать погоду
Tkinter - чтобы создать какое-никакое окно нашего "приложения"
Немножко времени и терпения
Сама суть приложения состоит в том чтобы время от времени проверять погоду в вашем городе, и показывать вам ее на экране монитора, просто даже для удобства
Как и почему это все работает?
что-ж, думаю этот вопрос возможно посетил вашу голову, и я с радостью расскажу и покажу, как да что.
папки, файлы и еще раз файлы
при включении, приложении проверяет наличие папки в корне, если же оно ее не находит - то создает и скачивает в нее все что нужно для работы приложения, и еще раз проверяет ее и все ее внутренности
все так же файлы
после успешной загрузки всех нужных файлов, программа просит ввести ваш город , и затем записывает его в файл конфигурации чтобы иметь возможность затем обратиться к нему (в случае если программа была закрыта, или же компьютер был выключен а затем включен)что же там за окном?
после всех этих действий, она узнает погоду и просто держит ее в памяти до нужного моментазависимость от времени, что?
первым делом, я пожелал поберечь здоровье, а конкретно - глаза. ведь никому не нужно чтобы во время чаепития в 2 часа ночи, этот ужасно яркий рабочий стол заставил наши глаза перейти в жидкое состояние. к чему я клоню? приложение проверяет время на вашем устройстве, и если оно больше 6-ти вечера (т.е. 18:00), и меньше 5-ти утра (т.е. 05:00) то дальнейшая смена обоев будет проходить в "темном режиме", пусть и мелочь, но зато как же это "радует" глаз во всех смыслах.костыли и не то чтобы велосипеды
сам процесс проходит так - после всего вышесказанного программа делает скриншот вашего экрана, чтобы знать где у него геометрический центр, ей ведь нужно сделать все красиво, верно? затем создает изображение залитое одним цветом, накладывает на него текст и просто ставит вам на обои , не больше не меньше. звучит "слишком" просто, не так ли? скажу свое мнение на этот счет - вам лишь показалось.вас тоже бесит это окно закрывающее обои?
не стоит забывать, что держать на своем мониторе вечно открытую программу, не делающую практически ничего - как минимум странно , и весьма бесполезно, пусть ее и можно свернуть. но вот незадача, меня раздражает это окно в панели быстрого доступа, оно занимает место, им ведь никто не пользуется. я не знаю как можно здесь обойтись без возможности "свернуть" в трей, просто щелкаем на красный крестик иииии да! теперь я вижу обещанную погоду на своих обоях, и при этом ничего и нигде не занимает просто так место. к тому же, если мне будет лень свернуть браузер во время просмотра того же ютуба , я всегда могу просто навести курсор на иконку в трее, и узнать погоду!Как по мне, это хоть капельку да полезно и познавательно
любой проект стоит того чтобы проверить свои силы, ведь это может быть не просто интересно! мое желание было поделиться своим творением с миром, и услышать критику/ваше мнение на этот счет.
Конечный результат:
Прошу простить, но скриншот с белым фоном остался лишь со времен разработки, т.к. в последние времена компьютер я включаю лишь ближе к ночи (к слову, я очень долго думал , писать пост или нет).
Если же вам действительно понравилось, я могу оставить ссылку на скачивание, ведь приложение собрано в ехе-шник , и возможно в дальнейшем выпустить для него парочку апдейтов, идеи-то есть.
Спасибо за внимание, Хабр, удачи вам!
osmanpasha
Делать скриншот, чтобы узнать размер экрана? Для этого же есть миллион нормальных способов
phobious Автор
«костыли и не то чтобы велосипеды» ))
это самое простое что мне пришло в голову)
он всеравно весит пару кб и лежит просто в корне проги, погоду он не сделает, но возможно это и правда стоит исправить)
kAIST
Ладно, фиг с ним со скриншотом, но хранить то его зачем?
from PIL import ImageGrab
size=ImageGrab.grab().size
phobious Автор
очередной повод переписать код, спасибо!
kAIST
Да и у вас же tkinter есть, который без всяких скриншотов даст то что нужно
import tkinter as tk
root = tk.Tk()
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight