Пример создание программу Tkinter Python

Введение

Tkinter — это стандартная библиотека Python для создания графических интерфейсов пользователя (GUI). Она предоставляет простой и удобный способ создания оконных приложений. В этой статье мы рассмотрим базовые шаги для создания простой программы на Tkinter.

Установка Tkinter

Tkinter входит в стандартную библиотеку Python, поэтому для большинства современных версий Python его установка не требуется. Однако, если у вас возникают проблемы с использованием Tkinter, убедитесь, что у вас установлена библиотека python-tk:

pip install tkhtmlview requests

Создание простого окна

Чтобы начать работу с Tkinter, нужно импортировать библиотеку и создать главное окно приложения. Вот пример:

from tkinter import *
from tkinter import messagebox as mb
from tkhtmlview import HTMLLabel
import socket, requests, os

current_dir = os.getcwd() + os.sep

def geodata(ip=''):
    if ip:
        public_ip = '/' + ip
    else:
        public_ip = ''
    r = requests.get(f'http://ip-api.com/json{public_ip}?fields=66846719&lang=ru')
    return r.json()

def action():
    value = entry.get()
    try:
        socket.inet_aton(value)
        is_ip = True
    except:
        is_ip = False

    if value and not is_ip:
        value = socket.gethostbyname(value)

    data = geodata(value)
    output = f'''<div style="font-size:12px;color:#fff">
        <b>Континент:</b> {data['continent']} [{data['continentCode']}]<br>
        <b>Страна:</b> {data['country']} [{data['countryCode']}]<br>
        <b>Область:</b> {data['regionName']}<br>
        <b>Город:</b> {data['city']}<br>
        <b>IP:</b> {data['query']}<br>
        <b>Широта:</b> {data['lat']}<br>
        <b>Долгота:</b> {data['lon']}<br>
        <b>Часовой пояс:</b> {data['timezone']}<br>
        <b>Валюта:</b> {data['currency']}<br>
        <b>Поставщик:</b> {data['as']} [{data['asname']}]
    </div>'''

    html_label = HTMLLabel(window, html=output, background='#34495e')
    html_label.place(x=20,y=135,width=400,height=220)

bg_color = '#ecf0f1'
window = Tk()
window.title('Геодата')
window.iconbitmap(current_dir + 'icon.ico')
window.configure(background=bg_color)
window.resizable(False, False)

# Центрировать окно
width = 440
height = 375
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
x_cordinate = int((screen_width/2) - (width/2))
y_cordinate = int((screen_height/2) - (height/2))
window.geometry("{}x{}+{}+{}".format(width, height, x_cordinate, y_cordinate))

label = Label(window,
    font='Tahoma 12 bold',
    bg=bg_color,
    fg='#000000',
    text="IP-адрес или домен"
)
label.place(x=14,y=15,width=180,height=25)

entry = Entry(window,
    background='#ffffff',
    foreground='#000000',
    font='Tahoma 12'
)
entry.insert(0, 'google.ru')
entry.place(x=20,y=47,width=300,height=30)

def hover_btn_enter(e):
    button['background'] = '#3498db'

def hover_btn_leave(e):
    button['background'] = '#2980b9'

button = Button(window,
    font='Tahoma 12',
    activebackground='#9b59b6',
    activeforeground='#ffffff',
    background='#2980b9',
    foreground='#ffffff',
    borderwidth='0px',
    cursor='hand2',
    text='Получить',
    command=action,
)

button.place(x=20,y=90,width=90,height=30)
button.bind("<Enter>", hover_btn_enter)
button.bind("<Leave>", hover_btn_leave)

html_label = HTMLLabel(window, html='<div style="font-size:12px;color:#fff">Результат...</div>', background='#34495e')
html_label.place(x=20,y=135,width=400,height=220)

window.mainloop()

Заключение

Мы рассмотрели основы создания простого окна с использованием Tkinter, а также добавление и обработку виджетов. Tkinter предоставляет множество других виджетов и возможностей для создания более сложных приложений. Надеюсь, этот пример поможет вам начать работать с Tkinter и создавать свои собственные графические приложения на Python.
Поделится:
IP-адрес: 3.94.202.151
Часовой пояс: Asia/Almaty
Подробнее

Сервисы

Страницы

Информация