Hướng dẫn làm giao diện ứng dụng Python bằng PyQT6
Hướng dẫn chi tiết cách tạo giao diện ứng dụng đơn giản bằng PyQT6 trong Python, kèm theo các bước cài đặt và giải thích từng dòng code.
Bài viết này hướng dẫn cách tạo một giao diện ứng dụng đơn giản bằng PyQT6 trong Python. Bạn sẽ tìm hiểu cách thiết lập cửa sổ chính, thêm các thành phần cơ bản, và cách xử lý sự kiện trong giao diện.
Mã Python:
import sys # Thư viện hệ thống cho phép tương tác với trình thông dịch Python
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QPushButton # Nhập các lớp cần thiết từ PyQt6
# Tạo một lớp MyApp kế thừa từ QWidget
class MyApp(QWidget):
def __init__(self):
super().__init__() # Gọi hàm khởi tạo của lớp cha QWidget
self.initUI() # Gọi hàm để khởi tạo giao diện
def initUI(self):
self.setWindowTitle('Ứng dụng PyQT6 đầu tiên') # Đặt tiêu đề cho cửa sổ ứng dụng
self.setGeometry(100, 100, 400, 300) # Đặt kích thước và vị trí của cửa sổ (x, y, width, height)
# Tạo một layout dạng hộp dọc
layout = QVBoxLayout()
# Tạo và thêm một label vào layout
self.label = QLabel('Chào mừng đến với PyQT6!', self)
layout.addWidget(self.label)
# Tạo và thêm một nút bấm vào layout
self.button = QPushButton('Nhấn vào tôi', self)
self.button.clicked.connect(self.onButtonClick) # Kết nối sự kiện nhấn nút với hàm onButtonClick
layout.addWidget(self.button)
# Thiết lập layout chính cho widget
self.setLayout(layout)
# Định nghĩa hàm xử lý sự kiện khi nút được nhấn
def onButtonClick(self):
self.label.setText('Bạn đã nhấn nút!') # Thay đổi nội dung của label
# Phần main của ứng dụng
if __name__ == '__main__':
app = QApplication(sys.argv) # Khởi tạo đối tượng QApplication
myApp = MyApp() # Tạo một đối tượng từ lớp MyApp
myApp.show() # Hiển thị giao diện
sys.exit(app.exec()) # Chạy vòng lặp sự kiện của ứng dụng
Giải thích chi tiết từng dòng code:
-
import sys
: Nhập thư viện hệ thống để tương tác với trình thông dịch Python. -
from PyQt6.QtWidgets import ...
: Nhập các lớp cần thiết từ thư viện PyQt6. -
class MyApp(QWidget)
: Định nghĩa lớpMyApp
kế thừa từQWidget
. -
def __init__(self)
: Hàm khởi tạo của lớpMyApp
. -
self.initUI()
: Gọi hàminitUI
để khởi tạo giao diện. -
self.setWindowTitle('...')
: Đặt tiêu đề cho cửa sổ. -
self.setGeometry(...)
: Đặt vị trí và kích thước cho cửa sổ. -
layout = QVBoxLayout()
: Tạo một layout dọc. -
self.label = QLabel('...')
: Tạo label và thêm vào layout. -
self.button = QPushButton('...')
: Tạo nút bấm và kết nối sự kiệnclicked
. -
self.onButtonClick
: Định nghĩa hàm xử lý khi nút được nhấn. -
app = QApplication(sys.argv)
: Khởi tạo ứng dụng. -
myApp.show()
: Hiển thị ứng dụng. -
sys.exit(app.exec())
: Bắt đầu vòng lặp sự kiện chính của ứng dụng.
Yêu cầu hệ thống:
- Python 3.9 trở lên
- PyQT6
Cách cài đặt các thư viện để chạy được đoạn mã Python trên:
Sử dụng pip để cài đặt PyQt6:
pip install PyQt6
Lời khuyên:
- Bạn nên thử thay đổi kích thước cửa sổ, tiêu đề, và các thành phần để hiểu rõ hơn về cách PyQT6 hoạt động.
- Tìm hiểu thêm về các layout khác như
QHBoxLayout
,QGridLayout
để có thêm nhiều tùy chọn trong việc thiết kế giao diện.