Giới thiệu về thư viện PyQt6



Bạn đã quen thuộc với các công nghệ ở một số các ngôn ngữ lập trình nổi tiếng hỗ trợ xây dựng ứng dụng Desktop như Winform, WPF (C#) hay Swing, JavaFx (Java). Bạn nhầm tưởng Python chỉ mạnh ở các thư viện hỗ trợ cho các ngành về AI hay Data Science, bạn đã thiếu sót. Python cũng có một thư viện hỗ trợ người dùng xây dựng ứng dụng Desktop và giao diện cũng xịn xò không kém như các công nghệ như của C# hay Java. Đó là thư viện PyQt6, một thư viện cho phép bạn sử dụng Qt GUI, một framework nổi tiếng của C++. Ta cùng bắt đầu với …

PyQt6 là gì?

PyQt là một công cụ tiện ích xây dựng GUI. PyQt cho phép bạn sử dụng Qt GUI, một cross-platform mạnh mẽ và nổi tiếng để xây dựng ứng dụng GUI trên Desktop, hệ thống nhúng và Mobile. Hỗ trợ cho các platform bao gồm: Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS và một số platform khác. PyQt là một Python Interface của Qt, là sự kết hợp giữa Python và Qt library, bao gồm các thành phần giao diện điều khiển (widgets , graphical control elements).
PyQt API bao gồm một số lượng lớn các Classes và Functions hỗ trợ cho việc thiết kế, xây dựng và xử lý các nghiệp vụ của người dùng khi sử dụng các phần mềm chức năng. Phiên bản mới nhất của PyQt là phiên bản PyQt6. Bạn đọc thêm về mô tả PyQt6 tại pypi pyqt6.

Hướng dẫn cài đặt PyQt6

Trước khi bắt đầu lập trình xây dựng giao diện GUI với PyQt6, ta cần phải cài đặt PyQt6 trên máy tính của mình. Một điều kiên quyết rằng bạn cần chắc chắn máy tính của bạn cũng đã cài đặt Python core thành công trước đó rồi. Nếu chưa, bạn có thể tham khảo bài viết Hướng dẫn cài đặt Python.

Cài đặt trên Windows

PyQt6 cho Windows cũng như các thư viện của Python khác, ta có thể cài đặt thông qua PyPi, là kho lưu trữ các gói lệnh của Python. Để cài đặt PyQt6 từ Python3, ta chạy lệnh sau:

pip3 install pyqt6

Bạn tham khảo video sau để hiểu rõ hơn về cài đặt PyQt6:

Cài đặt trên Linux

Trong Ubuntu, ta có thể đặt PyQt6 bằng lệnh sau:

sudo apt install python3-pyqt6

Cài đặt trên MacOs

Nếu bạn đã cài Python 3 trên macOs, bạn có thể tiếp tục cài đặt PyQt6 như bất kỳ một thư viện nào khác của Python, ta sử dụng lệnh sau để cài đặt:

pip3 install pyqt6

Chức năng chính của PyQt6

Thiết kế giao diện người dùng: PyQt6 cung cấp các lớp và đối tượng để thiết kế giaodiện người dùng đẹp mắt và tùy chỉnh được. Ví dụ: QWidget, QLabel, QLineEdit, QPushButton, QComboBox, QCheckBox, QRadioButton, …
Xử lý sự kiện: PyQt6 cho phép đăng ký các hàm xử lý sự kiện cho các đối tượng điều khiển. Ví dụ: clicked cho nút nhấn, textChanged cho trường nhập liệu, currentIndexChanged cho trường kết hợp, …
Đồng bộ hóa GUI(giao diện người dùng đồ họa): PyQt6 cung cấp các phương thức để đồng bộ hóa GUI và xử lý các tác vụ dài hạn mà không ảnh hưởng đến khả năng phản hồi của giao diện người dùng. Những công cụ này bao gồm:

  • QThread: đối tượng được sử dụng để thực hiện các tác vụ nền trong khi giữ cho giao diện người dùng phản hồi.
  • QTimer: đối tượng được sử dụng để gửi các sự kiện trong quá trình chạy củaứng dụng, cho phép thực hiện các tác vụ định kỳ hoặc sau một khoảng thời gian nhất định.
  • QCoreApplication.processEvents: phương thức được sử dụng để cho phép giao diện người dùng được cập nhật trong quá trình thực hiện các tác vụ dài hạn.

Truy cập C++: PyQt6 cung cấp các công cụ để truy cập đến các lớp và đối tượng của Qt được viết bằng C++. Ví dụ: QCoreApplication.instance, QMetaObject, QObject.findChild, …

  • QCoreApplication.instance: Phương thức này cho phép truy cập đến thể hiện(instance) của lớp QCoreApplication được tạo ra bởi P. Điều này cho phép chúng ta có thể truy cập và quản lý các thông tin và tài nguyên của ứng dụng,chẳng hạn như thông tin về phiên bản ứng dụng, tên ứng dụng, thư mục lưu trữ, …
  • QMetaObject: Lớp QMetaObject cung cấp thông tin về các lớp, đối tượng và thuộc tính được định nghĩa trong Qt, cho phép truy cập và thao tác với chúngtrong khi chạy ứng dụng.
  • QObject.findChild: Phương thức này cho phép tìm kiếm một đối tượng con của một đối tượng được định nghĩa trong Qt.

Tương thích đa nền tảng: PyQt6 có thể chạy trên nhiều nền tảng khác nhau bao gồm Windows, macOS và Linux.

Một số modules thường dùng

  • QtCore − Core non-GUI classes used by other modules. Là module bao gồm phần lõi không thuộc chức năng GUI, ví dụ dùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams, URLs, mime type, threads hoặc processes.
  • QtGui − Graphical user interface components. Bao gồm các class dùng cho việc lập trình giao diện (windowing system integration), event handling, 2D graphics, basic imaging, fonts và text.
  • QtMultimedia − Classes for low-level multimedia programming. Thư viện cho việc sử dụng âm thanh, hình ảnh, camera, …
  • QtNetwork − Classes for network programming. Bao gồm các class dùng cho việc lập trình mạng, hỗ trợ lập trình TCP/IP và UDP client , server hỗ trợ việc lập trình mạng.
  • QtOpenGL − OpenGL support classes
  • QtScript − Classes for evaluating Qt Scripts
  • QtSql − Classes for database integration using SQL. Cung cấp các class dùng cho việc làm việc với dữ liệu.
  • QtSvg − Classes for displaying the contents of SVG files. Dùng cho hiển thị các thành phần của SVG file.
  • QtWebKit − Classes for rendering and editing HTML. Cung cấp các class dùng cho làm việc với các trình duyệt Web , dựa trên thư viện WebKit2.
  • QtXml − Classes for handling XML
  • QtWidgets − Classes for creating classic desktop-style UIs. Bao gồm các class cho widget, ví dụ : button, hộp thoại, … được sử dụng để tạo nên giao diện người dùng cơ bản nhất.
  • QtDesigner − Classes for extending Qt Designer

Tham khảo Document từ trang chủ của Riverbankcomputing PyQt6.

Có thể bạn sẽ thích…

Trả lời