Создание виджета часов с использованием Python и Tkinter


Создайте виджет часов для рабочего стола с использованием Python и Tkinter.
В настоящее время создание графических пользовательских интерфейсов (GUI) стало неотъемлемой частью разработки программного обеспечения. С помощью Python и библиотеки Tkinter вы можете легко создавать разнообразные GUI-приложения для вашего рабочего стола. В этой статье мы рассмотрим, как создать готовый виджет часов с использованием Python, Tkinter и примером, который вы сможете легко адаптировать под свои потребности.
Установка необходимых компонентов
Прежде всего, убедитесь, что у вас установлен Python. Tkinter обычно поставляется вместе с Python, так что вам не нужно ничего дополнительно устанавливать.
Для начала откройте редактор и создайте новый файл с расширением '.py'.
Создание виджета часов
Вставьте следующий код:
#-*- coding: UTF-8 -*-
from tkinter import *
import time, re
class Main:
def __init__(self):
self.app_window = Tk()
self.app_window.title("Clock")
self.app_window.configure(bg="black")
self.button = Label(self.app_window, text="x", font=("Boulder", 14), bg="black", fg="#363529")
self.button.pack(side="right", anchor="n")
self.clock = Label(self.app_window, font=("Boulder", 68, 'bold'), bg="black", fg="#363529")
self.clock.pack()
self.get_time()
self.app_window.geometry(f"+{(self.app_window.winfo_screenwidth() - 100) // 2}+{(self.app_window.winfo_screenheight() - 100) // 2}")
self.app_window.overrideredirect(True)
self.app_window.attributes("-transparent", "black")
self.app_window.lift()
self.app_window.wm_attributes("-topmost", True)
self.app_window.bind('', self.on_mouse_press)
self.app_window.bind('', self.move_window)
self.button.bind('', self.clows_win)
self.app_window.mainloop()
def clows_win(self, event):
exit(0)
def move_window(self, event):
rect = re.fullmatch(r'\d+x\d+\+(?P-?\d+)\+(?P-?\d+)',
self.app_window.geometry()).groupdict()
x = int(rect['x']) + (event.x - self.start_x)
y = int(rect['y']) + (event.y - self.start_y)
self.app_window.geometry(f'+{x}+{y}')
def on_mouse_press(self, event):
self.start_x = event.x
self.start_y = event.y
def get_time(self):
timeVar = time.strftime("%H:%M:%S")
self.clock.config(text = timeVar)
self.clock.after(200, self.get_time)
if __name__ == '__main__':
Main()
Этот код создает простой виджет часов с использованием Tkinter. Виджет будет обновляться каждую секунду, отображая текущее системное время. Он также будет всегда находиться поверх всех окон и не будет иметь рамки.
Заключение
В этой статье мы рассмотрели, как использовать Python и Tkinter для создания готового виджета часов для вашего рабочего стола. Мы также освоили использование основных функций Tkinter для создания простого, но полезного приложения GUI.
Этот пример можно легко расширить и настроить под ваши потребности. Например, вы можете изменить шрифт и цвет текста, добавить дополнительные функции или интегрировать виджет в другие приложения. Возможности ограничены лишь вашей фантазией!
- 17.03.2024
- 38
- 0
Создание виджета часов с использованием Python и Tkinter
В настоящее время создание графических пользовательских интерфейсов (GUI) стало неотъемлемой частью разработки программного обеспечения. С помощью Python и библиотеки Tkinter вы можете легко создавать разнообразные GUI-приложения для вашего рабочего стола. В этой статье мы рассмотрим, как создать готовый виджет часов с использованием Python, Tkinter и примером, который вы сможете легко адаптировать под свои потребности.
Установка необходимых компонентов
Прежде всего, убедитесь, что у вас установлен Python. Tkinter обычно поставляется вместе с Python, так что вам не нужно ничего дополнительно устанавливать.
Для начала откройте редактор и создайте новый файл с расширением '.py'.
Создание виджета часов
Вставьте следующий код:
#-*- coding: UTF-8 -*-
from tkinter import *
import time, re
class Main:
def __init__(self):
self.app_window = Tk()
self.app_window.title("Clock")
self.app_window.configure(bg="black")
self.button = Label(self.app_window, text="x", font=("Boulder", 14), bg="black", fg="#363529")
self.button.pack(side="right", anchor="n")
self.clock = Label(self.app_window, font=("Boulder", 68, 'bold'), bg="black", fg="#363529")
self.clock.pack()
self.get_time()
self.app_window.geometry(f"+{(self.app_window.winfo_screenwidth() - 100) // 2}+{(self.app_window.winfo_screenheight() - 100) // 2}")
self.app_window.overrideredirect(True)
self.app_window.attributes("-transparent", "black")
self.app_window.lift()
self.app_window.wm_attributes("-topmost", True)
self.app_window.bind('', self.on_mouse_press)
self.app_window.bind('', self.move_window)
self.button.bind('', self.clows_win)
self.app_window.mainloop()
def clows_win(self, event):
exit(0)
def move_window(self, event):
rect = re.fullmatch(r'\d+x\d+\+(?P-?\d+)\+(?P-?\d+)',
self.app_window.geometry()).groupdict()
x = int(rect['x']) + (event.x - self.start_x)
y = int(rect['y']) + (event.y - self.start_y)
self.app_window.geometry(f'+{x}+{y}')
def on_mouse_press(self, event):
self.start_x = event.x
self.start_y = event.y
def get_time(self):
timeVar = time.strftime("%H:%M:%S")
self.clock.config(text = timeVar)
self.clock.after(200, self.get_time)
if __name__ == '__main__':
Main()
Этот код создает простой виджет часов с использованием Tkinter. Виджет будет обновляться каждую секунду, отображая текущее системное время. Он также будет всегда находиться поверх всех окон и не будет иметь рамки.
Заключение
В этой статье мы рассмотрели, как использовать Python и Tkinter для создания готового виджета часов для вашего рабочего стола. Мы также освоили использование основных функций Tkinter для создания простого, но полезного приложения GUI.
Этот пример можно легко расширить и настроить под ваши потребности. Например, вы можете изменить шрифт и цвет текста, добавить дополнительные функции или интегрировать виджет в другие приложения. Возможности ограничены лишь вашей фантазией!