برنامهنویسی GUI در Python
۱ اردیبهشت ۱۴۰۰
GUI یا رابط کاربری گرافیکی همان چیزی است که کاربر میبیند و در زمان نیاز به برنامهی شما با آن تعامل میکند. داشتن یک GUI خوب میتواند تاثیر بهسزایی در تجربهی کاربری داشته باشد و درنهایت باعث رشد برند شما خواهد شد. بههمین منظور در این مقاله چندین کتابخانه و ابزار معروف که برای توسعهی برنامههای GUI در زبان Python استفاده میشوند را به شما معرفی خواهیم کرد.
۱) PyQt5
PyQt5 یکی از محبوبترین ابزارهای توسعهی برنامههای گرافیکی است که توسط Riverbank Computing توسعه داده شده و میتوان گفت این ابزار ادغام شدهی زبان Python با فریمورک Qt است که از آن برای توسعهی برنامههای کراس پلتفرم تحت دستکاپ استفاده میشود. البته PyQt فراتر از یک ابزار برای توسعهی برنامههای گرافیکی است و امکانات بسیار زیادی را در اختیار شما قرار میدهد.
برای نصب این ابزار میتوانید دستور pip install PyQt5
را اجرا کنید اما همانطور که در مقالهی آموزش نصب و استفاده از Virtual environment در Python گفته شد بهتر است قبل از اجرای این دستور، یک محیط مجازی ایجاد کرده باشید. پس از نصب PyQT5 و اجرای کدهای زیر یک برنامهی سادهی گرافیکی را مشاهده خواهید کرد که Hello World!
در آن چاپ شده است:
import sys
from PyQt5.QtWidgets import QApplication, QWidget,QLabel, QVBoxLayout
app = QApplication(sys.argv)
w = QWidget()
w.resize(500,500)
w.layout = QVBoxLayout()
w.label = QLabel("Hello World!")
w.label.setStyleSheet("font-size:25px;margin-left:155px;")
w.setWindowTitle("PyQt5 Window")
w.layout.addWidget(w.label)
w.setLayout(w.layout)
w.show()
sys.exit(app.exec_())
۲) Tkinter
Tkinter یکی دیگر از محبوبترین کتابخانههای توسعهی رابط کاربری گرافیکی در زبان Python است که جزو اولین گزینههای مبتدیان برای یادگیری توسعهی GUI محسوب میشود زیرا سینتکس آن برای یادگیری بسیار ساده است. همچنین این کتابخانه ویجتهای متنوعی مانند labels، buttons، text fields، checkboxes و scroll buttons را ارائه میدهد و با پشتیبانی از طراحی grid به آسانتر شدن فرایند در توسعهی یک طراحی پیچیده کمک میکند.
برای استفاده از این کتابخانه در Python 3 نیازی به اجرای هیچ دستوری نیست و فقط با اجرای کدهای زیر، یک رابط کاربری گرافیکی ساده خواهید داشت که با دریافت مقادیر وزن و قد، مقدار محاسبه شدهی BMI را در یک popup box نمایش میدهد:
from tkinter import *
from tkinter import messagebox
def get_height():
height = float(ENTRY2.get())
return height
def get_weight():
weight = float(ENTRY1.get())
return weight
def calculate_bmi():
try:
height = get_height()
weight = get_weight()
height = height / 100.0
bmi = weight / (height ** 2)
except ZeroDivisionError:
messagebox.showinfo("Result", "Please enter positive height!!")
except ValueError:
messagebox.showinfo("Result", "Please enter valid data!")
else:
messagebox.showinfo("Your BMI Calculated is : ", bmi)
if __name__ == '__main__':
TOP = Tk()
TOP.bind("<Return>", calculate_bmi)
TOP.geometry("400x400")
TOP.configure(background="#8c52ff")
TOP.title("BMI Calculator")
TOP.resizable(width=False, height=False)
LABLE = Label(TOP, bg="#8c52ff",fg="#ffffff", text="Welcome to BMI Calculator", font=("Helvetica", 15, "bold"), pady=10)
LABLE.place(x=55, y=0)
LABLE1 = Label(TOP, bg="#ffffff", text="Enter Weight (in kg):", bd=6,
font=("Helvetica", 10, "bold"), pady=5)
LABLE1.place(x=55, y=60)
ENTRY1 = Entry(TOP, bd=8, width=10, font="Roboto 11")
ENTRY1.place(x=240, y=60)
LABLE2 = Label(TOP, bg="#ffffff", text="Enter Height (in cm):", bd=6,
font=("Helvetica", 10, "bold"), pady=5)
LABLE2.place(x=55, y=121)
ENTRY2 = Entry(TOP, bd=8, width=10, font="Roboto 11")
ENTRY2.place(x=240, y=121)
BUTTON = Button(bg="#000000",fg='#ffffff', bd=12, text="BMI", padx=33, pady=10, command=calculate_bmi,
font=("Helvetica", 20, "bold"))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=115, y=250)
TOP.mainloop()
۳) Kivy
Kivy یک فریمورک متن باز Python است که برای توسعهی سریع برنامههای گرافیکی مورد استفاده قرار میگیرد و این فریمورک قابلیت multi-touch را بههمراه ویجتهای مختلف برای برنامهی شما فراهم میکند. همچنین شما میتوانید Kivy را روی پلتفرمهای مختلفی مانند Windows، Linux، OS X، Android، iOS و Raspberry Pi اجرا کنید.
این فریمورک با اجرای دستور pip install Kivy
نصب میشود و میتوانید به شکل زیر از آن در پروژهی خود استفاده کنید:
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text= " Hello Kivy World ")
TestApp().run()
۴) wxPython
wxPython یک ابزار کراس پلتفرم برای توسعهی برنامههای GUI در زبان Python است که خودش با زبان C++
توسعه داده شده و بهکمک آن میتوانید رابطهای کاربری گرافیکی بهینهای را با کمترین زحمت ایجاد کنید. در حال حاضر این ابزار از پلتفرمهای Windows، MacOS، Mac OS X و Linux پشتیبانی میکند.
نصب wxPython با اجرای دستور pip install wxPython
انجام میشود و کدهای زیر یک مثال ساده از نحوهی کار با این ابزار است:
import wx
myapp = wx.App()
init_frame = wx.Frame(parent=None, title='WxPython Window')
init_frame.Show()
myapp.MainLoop()
۵) PySimpleGUI
PySimpleGUI یک فریمورک GUI در زبان Python است که از Python 3 پشتیبانی میکند و به شما امکان میدهد که رابطهای کاربری گرافیکی سفارشیسازی شده و جذابی را توسعه دهید. همچنین PySimpleGUI با توسعهی برخی کدهای آماده در هستهی این فریمورک باعث شده تا توسعهدهندگان مسیر هموارتری داشته باشند.
نصب این فریمورک با اجرای دستور pip install PySimpleGUI
انجام میشود و برای اطلاعات بیشتر میتوانید مستندات این فریمورک را مطالعه کنید.
import PySimpleGUI as sg
layout = [[sg.Text("Hello from PySimpleGUI")], [sg.Button("OK")]]
window = sg.Window("Demo", layout)
while True:
event, values = window.read()
if event == "OK" or event == sg.WIN_CLOSED:
break
window.close()
۶) PyGUI
PyGUI یکی دیگر از فریمورکهای متن باز GUI برای زبان Python است که به داشتن APIهای ساده معروف است و توسعهدهندگان را قادر میسازد که رابط کاربری برنامههایشان را با المنتهای Native ایجاد کنند بنابراین رابطهای کاربری ایجاد شده بهدلیل Native بودن المنتها از سرعت بالایی برخوردار هستند.
هماکنون این فریمورک بر روی پلتفرمهای مبتنی بر Unix، Windows و Mac OS بهخوبی اجرا میشود و از هر دو نسخهی Python یعنی Python 2 و Python 3 پشتیبانی میکند و نصب این فریمورک با اجرای دستور pip install PyGUI
انجام میشود.
۷) Pyforms
Pyforms یک فریمورک کراس پلتفرم برای توسعهی برنامههای GUI است. این فریمورک یک Python Layer از desktop formهای مبتنی بر PyQT، OpenGL و سایر کتابخانهها را ارئه میدهد و علاوهبراین برنامههای توسعه داده شده با این فریمورک میتوانند بهراحتی و بدون هیچ تغییری بر روی دستکاپ، وب و Terminal سیستمعامل اجرا شوند.
برای نصب این کتابخانه میتوانید دستور pip install PyForms
را اجرا کرده و برای اطلاعات بیشتر میتوانید مستندات رسمی این فریمورک را مطالعه کنید.
منبع: https://betterprogramming.pub/7-must-try-gui-libraries-in-python-34c8f6266363