Chương trình dựa trên gui trong python

Giao diện người dùng đồ họa (GUI) là một trong những phần quan trọng nhất của bất kỳ ứng dụng web nào. Một số người sẽ nói đó là phần quan trọng nhất, vì những người dùng tinh vi ngày nay nhanh chóng từ bỏ các ứng dụng có khả năng sử dụng kém. Điều này cũng đúng với các ứng dụng Python. Các lập trình viên Python mới làm quen thường thử nghiệm với việc xây dựng GUI sau khi họ đã nắm vững kiến ​​thức cơ bản về lập trình Python. Đó là khi họ phát hiện ra một khung là điều cần thiết để phát triển GUI hiệu quả, nhưng Python không thiếu các khung GUI. Câu hỏi nhanh chóng trở thành, cái nào là tốt nhất cho ứng dụng của bạn?

Để trả lời câu hỏi này, trước tiên chúng ta phải biết tại sao GUI lại quan trọng đối với ứng dụng của bạn

Tại sao GUI lại quan trọng?

GUI của bạn là ấn tượng đầu tiên của ứng dụng của bạn. Nếu bạn đang hy vọng thành công, bạn không thể tạo ấn tượng ban đầu tồi tệ. Bạn sẽ cần rất nhiều yếu tố đồ họa khác nhau, bao gồm các nút, hộp kiểm, nút chuyển đổi, danh sách thả xuống, trường tìm kiếm, thanh trượt, chú giải công cụ, v.v. — mọi thứ mà người dùng của bạn cần để tương tác với chức năng do ứng dụng của bạn cung cấp. Vị trí lộn xộn hoặc các tiện ích không hấp dẫn sẽ không giúp ích gì cho lần hiển thị đầu tiên.  

Bảo mật và hiệu suất cũng là những yếu tố chính xác định chất lượng ứng dụng của bạn và trải nghiệm của người dùng với ứng dụng đó. Bạn sẽ muốn ứng dụng của mình vừa nhanh vừa an toàn, nhưng bạn không muốn phải hy sinh GUI của mình để làm điều đó. Nếu người dùng gặp sự cố khi tương tác với ứng dụng của bạn một cách hiệu quả, cơ sở người dùng của bạn sẽ bị ảnh hưởng

Tại sao Khung GUI lại quan trọng?

Các khung phát triển được thiết kế để làm cho cuộc sống của nhà phát triển dễ dàng hơn. Chúng làm cho một loại ứng dụng cụ thể dễ tạo hơn hoặc một ngôn ngữ cụ thể dễ làm việc hơn. Khung GUI cho Python giúp việc phát triển giao diện người dùng cho ứng dụng của bạn dễ dàng hơn nhiều so với việc cố gắng viết mã thủ công bằng Python.   

Bây giờ bạn đã biết những gì cần tìm, tôi sẽ đếm ngược những gì tôi cho là mười khung GUI Python hàng đầu. Đối với mỗi người, tôi sẽ thảo luận về các điểm bán hàng độc đáo của họ, bao gồm.  

  • Tại sao bạn nên cân nhắc sử dụng chúng
  • Lợi thế độc đáo mà mỗi người cung cấp
  • Giới hạn khung bạn nên biết

Trước khi bạn bắt đầu. Cài đặt Môi trường Python Sẵn sàng Sử dụng Khung GUI của chúng tôi

Cách dễ nhất để bắt đầu thử nghiệm các khung GUI là cài đặt môi trường GUI Frameworks Python của chúng tôi cho Windows hoặc Linux, có chứa một phiên bản Python và hầu hết các gói được liệt kê trong bài đăng này

Chương trình dựa trên gui trong python

Để tải xuống môi trường GUI Frameworks Python sẵn sàng sử dụng, bạn sẽ cần tạo tài khoản Nền tảng ActiveState. Chỉ cần sử dụng thông tin đăng nhập GitHub hoặc địa chỉ email của bạn để đăng ký. Việc đăng ký thật dễ dàng và nó mở ra nhiều lợi ích của Nền tảng ActiveState cho bạn

Hoặc bạn cũng có thể sử dụng công cụ Trạng thái của chúng tôi để cài đặt môi trường thời gian chạy này.

Đối với người dùng Windows , hãy chạy phần sau tại dấu nhắc CMD để tự động tải xuống và cài đặt CLI của chúng tôi, Công cụ trạng thái cùng với thời gian chạy Khung GUI vào môi trường ảo.

powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default Pizza-Team/GUI-Frameworks-Win"

Đối với người dùng Linux , hãy chạy phần sau để tự động tải xuống và cài đặt CLI của chúng tôi, Công cụ trạng thái cùng với thời gian chạy Khung GUI vào môi trường ảo.

sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default Pizza-Team/GUI-Frameworks

10–PyGUI

Dự án GUI Python, hay còn gọi là PyGUI framework, là một API đơn giản dành cho nhà phát triển để tạo giao diện người dùng bằng các phần tử gốc cho các ứng dụng Python. Là một API nhẹ, không cần nhiều mã giữa ứng dụng và nền tảng đích, khiến nó hiệu quả hơn nhiều khung khác trong danh sách này.

Thuận lợi

  • Tài liệu tất cả được viết bằng Python
  • Có sẵn trong Python 2 và 3
  • Hỗ trợ các phần mở rộng Python khác như OpenGL và GTK
  • Đa nền tảng
  • Mã nguồn mở
  • Dễ dàng cài đặt qua pip

Hạn chế

  • Không được cài đặt sẵn Python

9–Sáp

Wax là trình bao bọc cho wxPython (xem #3 trong danh sách này). Nó cung cấp chức năng tương tự như wxPython, nhưng thân thiện với người dùng hơn nhiều. Tôi cũng đã bao gồm một ví dụ về cách sử dụng Wax ở cuối bài đăng này.

Thuận lợi

  • Mã nguồn mở
  • Đa nền tảng
  • dễ sử dụng

Hạn chế

  • Không được cài đặt sẵn Python

8–Pyform

Pyforms-GUI là lớp phần mềm tạo thành một phần của thư viện chính Pyforms, cũng bao gồm PyForms-Web và PyForms-Terminal. Pyforms là triển khai Python của Windows Forms, cho phép bạn phát triển giao diện tương tác cho chế độ Windows GUI, chế độ Web và chế độ Terminal.

Thuận lợi

  • Mã nguồn mở
  • nền tảng chéo
  • Nó có một API tối thiểu, vì vậy các giao diện có thể được xác định dễ dàng chỉ bằng một vài dòng mã Python
  • Bạn cũng có thể mã hóa các chức năng nâng cao với nỗ lực tối thiểu
  • Mã được tổ chức theo mô-đun, sẵn sàng để được sử dụng lại bởi các ứng dụng khác
  • Đơn giản hóa việc bảo trì ứng dụng
  • Tạo mẫu nhanh chóng và dễ dàng
  • Đường cong học tập thấp
  • Dễ dàng cài đặt với pip

Hạn chế

  • Chỉ khả dụng cho Python3 và không được cài đặt sẵn
  • Không phù hợp để xử lý một số lượng lớn các trường dữ liệu trong một biểu mẫu
  • Hiển thị giá trị thuộc tính bản ghi, nhưng không hỗ trợ gọi hàm phương thức của đối tượng đang duyệt
  • Nó không thể hiển thị các thuộc tính được tính toán động

7–PySimpleGUI

PySimpleGUI đã được tạo từ năm 2008 để giúp việc phát triển GUI trong Python dễ tiếp cận hơn. Những gì trong một cái tên? .

Thuận lợi

  • Mã nguồn mở
  • nền tảng chéo
  • Trăn 3
  • Dễ dàng cài đặt qua pip
  • dễ học
  • Có rất nhiều tài liệu và hướng dẫn, đây là một cách tuyệt vời để bắt đầu học thiết kế GUI

Hạn chế

  • Thực sự chỉ nên được sử dụng để phát triển GUI đơn giản
  • Thiếu một nhà thiết kế biểu mẫu

6–Libavg

Libavg là một khung GUI Python tuyệt vời dành riêng cho việc xây dựng các giao diện dựa trên cảm ứng. Nó được xây dựng bằng C++, cho phép thời gian thực thi nhanh, cần thiết khi xử lý các giao diện dựa trên cảm ứng.

Thuận lợi

  • Mã nguồn mở
  • nền tảng chéo
  • Hỗ trợ trình điều khiển phổ biến cho màn hình cảm ứng
  • Nhiều tính năng, bao gồm hỗ trợ máy ảnh và hoạt ảnh, cũng như các hiệu ứng GPU và căn chỉnh văn bản
  • Cung cấp một công cụ bố cục màn hình cho các kỹ thuật thao tác trực quan hóa khác nhau
  • Hỗ trợ cả Python 2. 7 và 3

Hạn chế

  • Không được cài đặt sẵn Python

5–Kivy

Kivy là thư viện Python nguồn mở, đa nền tảng (dựa trên Python và Cython) được thiết kế để phát triển nhanh các ứng dụng có giao diện người dùng phức tạp, chẳng hạn như ứng dụng đa chạm. Kivy chạy trên Linux, Windows, OS X, Android, iOS và Raspberry Pi và bạn có thể chạy cùng một mã trên tất cả các nền tảng này.

Sự kết hợp của 'mã một lần, chạy trên nhiều nền tảng' cộng với việc sử dụng các kỹ thuật đồ họa mạnh mẽ (hỗ trợ tích hợp cho OpenGL ES 2) làm cho khung này phù hợp với các nhà thiết kế ứng dụng iOS và Android

Thuận lợi

  • Mã nguồn mở
  • giấy phép MIT
  • Tiện ích tích hợp
  • nền tảng chéo

Hạn chế

  • Không được cài đặt sẵn Python

4–PySide2

PySide2 là Qt cho Python, cung cấp các ràng buộc Python chính thức cho Qt. Điều này cho phép sử dụng API Qt trong ứng dụng Python và cũng là công cụ tạo liên kết (Shiboken2) để hiển thị các dự án C++ trong Python.

Qt được coi là tiêu chuẩn cho thiết kế GUI để đo lường tất cả các khung GUI Python khác. Như vậy, PySide2 cung cấp cho các nhà phát triển Python quyền truy cập vào bộ sưu tập các công cụ và thư viện đã được chứng minh để tạo giao diện người dùng nhanh chóng và linh hoạt.

Thuận lợi

  • Dễ dàng cài đặt qua pip
  • Hỗ trợ cả Python 3 và Python 2. 7
  • nền tảng chéo
  • Hỗ trợ cộng đồng rộng rãi và tài liệu
  • Được sử dụng bởi các công ty nổi tiếng như TomTom và Mercedes

Hạn chế

  • Không được cài đặt sẵn Python
  • Được cấp phép theo LGPL, điều này khiến nó có vấn đề khi sử dụng trong các ứng dụng thương mại vì bạn sẽ cần cung cấp mã nguồn của mình
  • Trăn 2. 7 bản dựng chỉ khả dụng cho phiên bản 64 bit của MacOS và Linux. Hỗ trợ Windows 32 bit chỉ được cung cấp trên Python 2

3–wxPython

wxPython là bộ công cụ GUI đa nền tảng mà bạn có thể sử dụng để tạo GUI mạnh mẽ, có chức năng theo cách đơn giản và dễ dàng. Việc triển khai là một tập hợp các mô-đun mở rộng Python bao bọc các thành phần GUI của thư viện đa nền tảng wxWidgets, được viết bằng C++.

wxPython tạo các giao diện người dùng gốc không thêm chi phí bổ sung cho ứng dụng, cung cấp cho bạn khả năng của một thư viện chức năng mà không phải chịu gánh nặng

Thuận lợi

  • Mã nguồn mở
  • nền tảng chéo
  • Hỗ trợ cả Python 2. 7 và 3
  • Đơn giản để sử dụng
  • Cài đặt trơn tru với pip

Hạn chế

  • Không phải là một phần của Python được cài đặt sẵn trên MacOS

2–Tkinter

Tkinter là sự kết hợp của khung GUI tiêu chuẩn Tcl và Python cung cấp cho bạn tất cả các tiện ích bạn cần để tạo giao diện người dùng phong phú cho bất kỳ ứng dụng nào bạn đang làm việc, nhưng đặc biệt là .  

Thuận lợi

  • Nếu bạn đang sử dụng phiên bản Python mới nhất, thì rất có thể Tkinter đã được cài đặt
  • Tkinter cung cấp một bộ sưu tập lớn các tiện ích nổi tiếng, bao gồm tất cả những tiện ích phổ biến nhất như nút, nhãn, hộp kiểm, v.v.
  • Thêm mã vào mỗi tiện ích rất đơn giản

Hạn chế

  • Các tiện ích Tkinter cơ bản đều tốt, nhưng bạn sẽ muốn đảm bảo phiên bản Tkinter của mình cũng hỗ trợ bộ tiện ích Ttk mở rộng

1–PyQt5

PyQt5 là một khung GUI rất nổi tiếng được sử dụng bởi cả lập trình viên Python và nhà thiết kế giao diện người dùng. Một trong các thành phần của nó, gói PyQt, được xây dựng xung quanh khung Qt, đây là công cụ thiết kế GUI đa nền tảng hàng đầu cho mọi loại ứng dụng. Gói PyQt5 có một bộ liên kết chi tiết cho Python dựa trên phiên bản mới nhất (v5) của khung ứng dụng Qt. Nó cũng cung cấp hỗ trợ SQL để kết nối với cơ sở dữ liệu.

Tạo GUI cực kỳ dễ dàng với mô-đun QtGUI và QtDesigner, cung cấp nhiều yếu tố trực quan có thể được triển khai đơn giản bằng cách kéo và thả các tiện ích

Thuận lợi

  • Chức năng kéo và thả để triển khai các yếu tố trực quan
  • Thêm mã vào các phần tử trực quan cho phép tạo các ứng dụng quy mô nhỏ và lớn
  • Hỗ trợ đa nền tảng cho Windows, Mac, Android và Raspberry Pi
  • Dễ dàng cài đặt với pip

Hạn chế

  • Không miễn phí. PyQt5 yêu cầu bạn mua giấy phép thương mại
  • Không được cài đặt sẵn Python
  • Chỉ hỗ trợ Python 3

kết luận. Khung GUI Python nào là tốt nhất?

Mẩu chuyện dài. Nó phụ thuộc vào nhu cầu của bạn. Ví dụ

  • Dành cho người mới bắt đầu. Tôi khuyên bạn nên bắt đầu với PySimpleGUI. Framework này rất dễ làm theo và có rất nhiều tài liệu để giúp bạn tìm hiểu về thiết kế và phát triển GUI với Python.
  • Nếu bạn thấy PySimpleGUI quá hạn chế. Hãy thử thứ gì đó hoàn thiện hơn một chút như wxPython. Nó cung cấp một bộ điều khiển tốt hơn trong một khung dễ sử dụng, mặc dù trình bao bọc (Wax) của nó thân thiện hơn với người dùng. Một trong hai sẽ tạo ra một bước tiến tốt hơn PySimpleGUI – sự lựa chọn là của bạn.
  • Lập trình viên tập trung vào thiết kế. Yêu thích thiết kế GUI? . Tất cả chúng sẽ cung cấp cho bạn các điều khiển linh hoạt tuyệt vời để bạn có thể xây dựng giao diện người dùng trong mơ của mình. Tuy nhiên, hãy nhớ rằng PyQt5 và PySide 2 sẽ yêu cầu bạn mua giấy phép.
  • Giao diện người dùng màn hình cảm ứng. Cần giao diện người dùng cho ứng dụng màn hình cảm ứng? . Nếu thời gian thực hiện nhanh là quan trọng đối với bạn, thì tôi khuyên dùng Libavg. Mặt khác, nếu thiết kế trực quan là tối quan trọng, hãy gắn bó với Kivy.
  • Giao diện người dùng dựa trên biểu mẫu. Nếu ứng dụng của bạn dựa trên biểu mẫu, thì Pyforms là một lựa chọn tốt. Mặt khác, khó có thể giới thiệu Pyforms.
  • Trăn 2. nếu bạn vẫn đang làm việc với Python 2, thì có một số khung GUI mà bạn có thể thử bao gồm PyGUI, PySide 2 và wxPython. Tuy nhiên, bạn nên lưu ý rằng Python 2 không còn được hỗ trợ chính thức bởi Python Software Foundation hoặc cộng đồng Python. Nếu bạn cần hỗ trợ Python 2, hãy xem hỗ trợ mở rộng của chúng tôi.

Đối với tôi, khung giao diện người dùng tốt nhất là Wax, phiên bản thân thiện với người dùng của wxPython. Nó có tất cả các đặc điểm của một khung Python hiệu quả để phát triển GUI mà không cần nhiều giải pháp phức tạp hơn. Tuy nhiên, nếu bạn có nhu cầu về các yếu tố thiết kế và đồ họa nâng cao, thì có lẽ bạn nên thử PyQt5, Tkinter hoặc PySide 2

Sẵn sàng cho Wax?

from wax import *

from wax.tools.datepicker import DatePicker

import datetime

import time


class MainFrame(VerticalFrame):

    def Body(self):

        p1 = HorizontalPanel(self)

        dp1 = DatePicker(p1)

        p1.AddComponent(dp1)

        p1.AddSpace(10)


        b1 = Button(p1, "Add 1 day", event=self.AddOneDay)

        p1.AddComponent(b1)
   

        p1.Pack()

        self.AddComponent(p1, expand='h', border=4)
 

        p2 = HorizontalPanel(self)

        dp2 = DatePicker(p2, style='dropdown', show_century=1)

        p2.AddComponent(dp2)

        p2.AddSpace(10)

        

        b2 = Button(p2, "Yesterday", event=self.SetToYesterday)

        p2.AddComponent(b2)


        p2.Pack()

        self.AddComponent(p2, expand='h', border=4)
    

        self.Pack()

        self.BackgroundColor = p1.BackgroundColor

        self.dp1 = dp1

        self.dp2 = dp2


        # restrict dp2's range to current year

        thisyear = time.localtime(time.time())[0]

        dp2.SetRange((thisyear, 1, 1), (thisyear, 12, 31))


    def AddOneDay(self, event):

        self.dp1.Inc()

        print "Date set to:", self.dp1.Value


    def SetToYesterday(self, event):

        now = time.localtime(time.time())

        self.dp2.Value = now[:3] # tuple: (year, month, day)

        self.dp2.Dec()


app = Application(MainFrame, title='datepicker-1')

app.Run()

Để giúp bạn dùng thử khung GUI dễ dàng hơn, hãy cài đặt môi trường thời gian chạy Khung GUI của chúng tôi cho Windows hoặc Linux, chứa phiên bản Python và hầu hết các khung GUI trong bài đăng này

Chương trình dựa trên gui trong python

Với Nền tảng ActiveState, bạn có thể tạo môi trường Python của mình sau vài phút, giống như môi trường chúng tôi đã tạo cho dự án này. Hãy tự mình dùng thử hoặc tìm hiểu thêm về cách nó giúp các nhà phát triển Python làm việc hiệu quả hơn

GUI tốt nhất cho Python là gì?

Dưới đây là tổng quan về 10 thư viện Python tốt nhất dành cho GUI. .
PyQt5. Được phát triển bởi Riverbank Computing, PyQt5 là một trong những khung Python phổ biến nhất cho GUI. .
tkinter. Một thư viện Python hàng đầu khác cho GUI là Tkinter, một thư viện Giao diện người dùng đồ họa Python mã nguồn mở. .
kivy. .
PySimpleGUI. .
Libavg. .
PyForms. .
PySide2. .

Các chương trình Python có thể có GUI không?

Python hỗ trợ nhiều khung GUI hoặc bộ công cụ , từ Tkinter thường đi kèm với Python, đến một số giải pháp đa nền tảng, chẳng hạn như PyQT hoặc wxPython, mà bạn .

Làm cách nào để tạo ứng dụng dựa trên GUI bằng Python?

Tkinter là thư viện GUI chuẩn cho Python. .
Nhập mô-đun Tkinter
Tạo cửa sổ chính của ứng dụng GUI
Thêm một hoặc nhiều tiện ích nêu trên vào ứng dụng GUI
Nhập vòng lặp sự kiện chính để thực hiện hành động đối với từng sự kiện do người dùng kích hoạt

GUI Python nào là tốt nhất cho người mới bắt đầu?

Tkinter là sự kết hợp của khung GUI tiêu chuẩn Tcl và Python cung cấp cho bạn tất cả các tiện ích bạn cần để tạo giao diện người dùng phong phú cho bất kỳ ứng dụng nào bạn đang làm việc, nhưng nó đặc biệt phù hợp để phát triển ứng dụng dành cho máy tính để bàn
PyQt5 là một khung GUI rất nổi tiếng được sử dụng bởi cả lập trình viên Python và nhà thiết kế giao diện người dùng