PyQt6 Hello World
Trong bài viết này, chúng ta thực hiện viết chương trình đầu tiên có sử dụng thư viện PyQt6. Chương trình này nhằm mục đích tạo ra một cửa sổ ứng dụng đơn giản. Qua đó, ta được tìm hiểu những lệnh cơ bản trong thư viện PyQt6, khởi tạo một ứng dụng và thực hiện lập trình bằng mã lệnh một cách thuần là như nào. Chúng ta hãy cùng bắt đầu với …
Chương trình đầu tiên với PyQt6
Quan sát vào chương trình dưới đây, chương trình này nhằm tạo ra một cửa sổ có tiêu đề là Hello World trên màn hình.
# khai báo thư viện
from PyQt6.QtWidgets import QApplication, QWidget
import sys
# tạo ứng dụng
app = QApplication(sys.argv)
# tạo cửa sổ chính
window = QWidget(windowTitle = 'Hello World')
window.show()
# khởi động vòng lặp sự kiện
app.exec()
Để chạy chương trình trên, ta dùng lệnh sau trong CMD với cú pháp:
python first_program.py
Trong đó, first_program.py chính là tên tệp mã nguồn python.
Ta quan sát kết quả:
Chương trình trên hoạt động như nào?
Đầu tiên, ta cần khai báo các lớp cần thiết như QApplication và QMainWidget từ thư viện PyQt6.Widgets.
from PyQt6.QtWidgets import QApplication, QWidget
Thứ hai, ta tạo một đối tượng từ lớp QApplication:
app = QApplication(sys.argv)
Thứ ba, tạo một “thể hiện” (instance) của QWidget với tiêu đề là “Hello World” và gọi đến phương thức show() để hiện thị cửa sổ:
window = QWidget(windowTitle = 'Hello World')
window.show()
Cuối cùng, gọi đến phương thức exec() của QMainApplication để bắt đầu vòng lặp sự kiện.
app.exec()
Giới thiệu về Vòng lặp sự kiện (event loop)
Mỗi ứng dụng PyQt cần có một thể hiện của lớp QApplication. Đối tượng của QApplication lưu trữ vòng lặp sự kiện của ứng dụng.
Vòng lặp sự kiện chịu trách nhiệm quản lý các sự kiện của ứng dụng bao gồm các tương tác của người dùng lên GUI.
Khi ta tương tác với ứng dụng PyQt, ví dụ như nhấn phím hoặc nhấn nút bấm, PyQt sẽ tạo một sự kiện và đặt nó vào Hàng đợi sự kiện.
Vòng lặp sự kiện liên tục kiểm tra hàng đợi sự kiện. Nếu vòng lặp sự kiện tìm thấy sự kiện, nó sẽ chuyển tiếp sự kiện đó đến trình xử lý sự kiện cụ thể.
Trình xử lý sự kiện nhằm xử lý sự kiện và chuyển quyền điều khiển trở lại vòng lặp sự kiện để xử lý các sự kiện tiếp theo.