π ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² ΠΠΈΡΠΎΠ½Π΅ - ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ 2021
ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² ΠΏΠΈΡΠΎΠ½Π΅?
ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Tkinter. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import tkinter as tk
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
new_window = tk.Tk()
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΠ½Π°
new_window.title("ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
new_window.geometry("400x300")
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
label = tk.Label(new_window, text="ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!")
label.pack()
# ΠΠ°ΠΏΡΡΠΊ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
new_window.mainloop()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ tkinter, ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Tk(), Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡΡ.
Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Python!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² ΠΏΠΈΡΠΎΠ½Π΅?
ΠΡΠΊΡΡΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ GUI (Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Python.
1. Tkinter
Tkinter ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Python Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Tkinter, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
from tkinter import Tk, Toplevel
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
root = Tk()
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window = Toplevel(root)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window.title("ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
new_window.geometry("300x200")
# ΠΠ°ΠΏΡΡΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠΊΠ½Π°
root.mainloop()
2. PyQt
PyQt - ΡΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Qt. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PyQt:
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
app = QApplication([])
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
main_window = QMainWindow()
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window = QWidget(main_window)
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window.setWindowTitle("ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
new_window.setGeometry(100, 100, 300, 200)
# ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window.show()
# ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
app.exec_()
3. Pygame
Pygame - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ³Ρ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π₯ΠΎΡΡ Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΊΡΡ - ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
import pygame
# ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Pygame
pygame.init()
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
new_window = pygame.display.set_mode((300, 200))
pygame.display.set_caption("ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
# ΠΠ°ΠΏΡΡΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠΊΠ½Π°
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Pygame
pygame.quit()
4. Kivy
Kivy - ΡΡΠΎ ΠΎΡΠΊΡΡΡΠ°Ρ ΠΈ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ΅Π½ΡΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Kivy:
from kivy.app import App
from kivy.uix.button import Button
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
class MyApp(App):
def build(self):
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ
button = Button(text="ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
# ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ
def open_new_window(obj):
new_window = Button(text="ΠΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ")
new_window.open()
button.bind(on_release=open_new_window)
return button
# ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
if __name__ == "__main__":
MyApp().run()
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π΄Π»Ρ Π²Π°Ρ!