Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách sử dụng widget PyQt QLabel
Trong bài viết này, bạn sẽ được tìm hiểu cách sử dụng widget QLabel trong PyQt để hiển thị văn bản hoặc hình ảnh. QLabel là một widget cơ bản nhưng rất hữu ích, cho phép bạn dễ dàng hiển thị các thông tin tĩnh trên giao diện người dùng của ứng dụng. Qua các ví dụ thực tiễn, bạn sẽ nắm bắt cách tạo và tùy chỉnh QLabel để đáp ứng nhu cầu của mình.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Giới thiệu về Widget PyQt QLabel
Lớp QLabel cho phép bạn tạo một widget nhãn để hiển thị văn bản, hình ảnh, hoặc hình ảnh động (GIF).
Để tạo một widget nhãn, bạn thực hiện các bước sau:
Bước 1: Import widget QLabel từ module PyQt6.QtWidgets:
Bài viết này được đăng tại [free tuts .net]
from PyQt6.QtWidgets import QLabel
Bước 2: Tạo một đối tượng mới từ lớp QLabel:
label = QLabel('Đây là widget QLabel')
Trong cú pháp này, bạn truyền vào một chuỗi văn bản mà bạn muốn hiển thị lên QLabel.
Ngoài ra, bạn cũng có thể sử dụng phương thức setText() để thiết lập văn bản cho widget QLabel sau khi tạo:
label = QLabel()
label.setText('Đây là widget QLabel')
Để lấy văn bản từ widget QLabel, bạn gọi phương thức text():
label.text()
Để xóa văn bản khỏi widget QLabel, bạn sử dụng phương thức clear():
label.clear()
Ví dụ về widget PyQt QLabel
Chương trình dưới đây hiển thị một cửa sổ với một widget QLabel:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt Label Widget')
self.setGeometry(100, 100, 320, 210)
# tạo một widget QLabel
label = QLabel('Đây là một widget QLabel')
# đặt widget vào cửa sổ
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
# hiển thị cửa sổ
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
# tạo cửa sổ chính
window = MainWindow()
# khởi động vòng lặp sự kiện
sys.exit(app.exec())
Kết quả:
Chương trình sẽ hiển thị một cửa sổ có chứa một nhãn với dòng chữ "Đây là một widget QLabel".
Sử dụng widget PyQt QLabel để hiển thị hình ảnh
Để hiển thị hình ảnh sử dụng widget QLabel, bạn thực hiện các bước sau:
Bước 1: Import QPixmap từ module PyQt6.QtGui:
from PyQt6.QtGui import QPixmap
Bước 2: Tạo một đối tượng QPixmap với đường dẫn đến file hình ảnh:
pixmap = QPixmap('python-logo.png')
Lưu ý rằng file hình ảnh python-logo.png phải nằm trong cùng thư mục với chương trình Python của bạn.
Bước 3: Tạo một widget QLabel và gọi phương thức setPixmap() để hiển thị hình ảnh:
label = QLabel()
label.setPixmap(pixmap)
Chương trình dưới đây sẽ hiển thị một hình ảnh sử dụng widget QLabel:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QPixmap
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt Label Widget')
self.setGeometry(100, 100, 320, 210)
label = QLabel()
pixmap = QPixmap('python-logo.png')
label.setPixmap(pixmap)
# đặt widget vào cửa sổ
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
# hiển thị cửa sổ
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
# tạo cửa sổ chính
window = MainWindow()
# khởi động vòng lặp sự kiện
sys.exit(app.exec())
Kết quả:
Chương trình sẽ hiển thị một cửa sổ với hình ảnh python-logo.png.
Sử dụng widget PyQt QLabel để hiển thị hình ảnh động
Để hiển thị một hình ảnh động (GIF), bạn có thể làm theo các bước sau:
Bước 1: Import QMovie từ module PyQt6.QtGui:
from PyQt6.QtGui import QMovie
Bước 2: Tạo một đối tượng QMovie với đường dẫn đến GIF:
movie = QMovie('python.gif')
Bước 3: Tạo một widget QLabel:
label = QLabel(self)
Bước 4: Gán movie cho widget QLabel bằng cách gọi phương thức setMovie():
label.setMovie(movie)
Bước 5: Gọi phương thức start() của đối tượng QMovie để bắt đầu phát hình ảnh động:
movie.start()
Chương trình dưới đây sẽ hiển thị một hình ảnh động sử dụng các widget QLabel và QMovie:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QMovie
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QLabel Widget')
self.setGeometry(100, 100, 320, 210)
label = QLabel()
movie = QMovie('python.gif')
label.setMovie(movie)
movie.start()
# đặt widget vào cửa sổ
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
# hiển thị cửa sổ
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
# tạo cửa sổ chính
window = MainWindow()
# khởi động vòng lặp sự kiện
sys.exit(app.exec())
Kết quả:
Chương trình sẽ hiển thị một cửa sổ với hình ảnh động python.gif.
Kết bài
Bạn có thể sử dụng widget PyQt QLabel để hiển thị văn bản hoặc hình ảnh, bao gồm cả hình ảnh động. QLabel là một công cụ mạnh mẽ và linh hoạt trong việc xây dựng giao diện người dùng với PyQt.