Опубликовал для вас один из своих учебных проектов моего курса про PySide2 — LaunchPanel.
Это панель, которая выезжает сверху экрана когда к ней подводишь курсор. Содержит кнопки для запуска любых команд.
🔸 можно добавить любые команды
🔸 одна кнопка может содержать много вариантов одной команды. Доступ к ним через контекстное меню
🔸 панель настраивается через файлы конфига
Но самое главное в этом проекте то, что почти каждая строка задокументирована!😱
Что используется в проекте?
🔸 стилизация виджетов через StyleSheet
🔸 настройка отображения окна как панели без рамок, заголовка и всего остального
🔸 использование файлов конфига
🔸 HTML текст в виджетах
🔸 анимация свойств виджета (позиция и прозрачность)
🔸 реакция виджета на курсор
🔸 запуск подпроцессов
🌎 Исходники забираем здесь
Смотрите, изучайте, пользуйтесь 😉
#qt#source
Also there will be a scheduled downtime for two remaining bots tomorrow, in about 16h 20h from now :
- @BanWarnBot
- @RulesRulesBot
Those have a database, and therefore they need to be take down to not loose any changes happining while the data is moved over.
#scheduled#downtime
https://docs.python.org/3/library/asyncio-dev.html#asyncio-coroutine-not-scheduled
18.5.9.6. Detect #coroutine objects never #scheduled
When a coroutine function is called and its result is not passed to ensure_future() or to the BaseEventLoop.create_task() method, the execution of the coroutine object will never be scheduled which is probably a bug. Enable the debug mode of asyncio to log a warning to detect it.
Example with the bug:
import asyncio
@asyncio.coroutine
def test():
print("never scheduled")
test()
Output in debug mode:
Coroutine test() at test.py:3 was never yielded from
Coroutine object created at (most recent call last):
File "test.py", line 7, in <module>
test()
The fix is to call the ensure_future() function or the BaseEventLoop.create_task() method with the coroutine object.