Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách dùng lớp PyQt QGroupBox để tạo một khung nhóm với tiêu đề
Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng lớp PyQt QGroupBox để tạo ra một khung nhóm có tiêu đề, giúp dễ dàng tổ chức và quản lý các widget liên quan trong giao diện người dùng. Khung nhóm không chỉ làm cho giao diện trực quan hơn mà còn giúp chia nhỏ các thành phần thành những nhóm có liên quan, từ đó cải thiện trải nghiệm người dùng và cấu trúc của ứng dụng.

Giới thiệu về widget PyQt QGroupBox
QGroupBox cho phép bạn nhóm các widget liên quan lại với nhau trong một khung và có tiêu đề phía trên. Để tạo một widget khung nhóm, bạn sử dụng lớp QGroupBox như sau:
group_box = QGroupBox(title)
Tuy nhiên, khung nhóm không tự động bố trí các widget con bên trong nó, do đó bạn cần tạo một đối tượng layout trước:
layout = QVBoxLayout()
Sau đó, đặt layout cho khung nhóm:
Bài viết này được đăng tại [free tuts .net]
group_box.setLayout(layout)
Sử dụng đối tượng layout để thêm các widget con vào khung nhóm:
layout.addWidget(widget1) layout.addWidget(widget2) layout.addWidget(widget3)
Dưới đây là các bước đầy đủ để tạo một khung nhóm và thêm các widget con vào đó:
# Tạo một khung nhóm group_box = QGroupBox(title) # Tạo một layout và gán nó cho khung nhóm layout = QVBoxLayout() group_box.setLayout(layout) # Thêm các widget vào layout layout.addWidget(widget1) layout.addWidget(widget2) layout.addWidget(widget3)
Ví dụ về widget PyQt QGroupBox
Ví dụ dưới đây minh họa cách sử dụng lớp QGroupBox để tạo các khung nhóm:
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QFormLayout, QPushButton, QGroupBox, QLineEdit, QDateEdit
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QGroupBox')
# Tạo layout chính
layout = QFormLayout(self)
self.setLayout(layout)
# Tạo khung nhóm "Thông tin cá nhân"
person_groupbox = QGroupBox('Thông tin cá nhân')
form_layout = QFormLayout()
person_groupbox.setLayout(form_layout)
# Thêm các trường nhập liệu vào khung nhóm "Thông tin cá nhân"
form_layout.addRow('Họ:', QLineEdit(person_groupbox))
form_layout.addRow('Tên:', QLineEdit(person_groupbox))
form_layout.addRow('Ngày sinh:', QDateEdit(person_groupbox))
# Tạo khung nhóm "Thông tin liên hệ"
contact_groupbox = QGroupBox('Thông tin liên hệ')
form_layout = QFormLayout()
contact_groupbox.setLayout(form_layout)
form_layout.addRow('Số điện thoại:', QLineEdit(contact_groupbox))
form_layout.addRow('Địa chỉ Email:', QLineEdit(contact_groupbox))
# Thêm khung nhóm vào layout chính
layout.addWidget(person_groupbox)
layout.addWidget(contact_groupbox)
# Thêm nút lưu
layout.addWidget(QPushButton('Lưu'))
# Hiển thị cửa sổ
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Kết bài:

Giải thích cách hoạt động
-
Đầu tiên, tạo khung nhóm với tiêu đề 'Thông tin cá nhân':
person_groupbox = QGroupBox('Thông tin cá nhân')
Sau đó, tạo một layout dạng form và gán nó cho khung nhóm:
form_layout = QFormLayout() person_groupbox.setLayout(form_layout)
Thêm các trường nhập liệu vào layout của khung nhóm:
form_layout.addRow('Họ:', QLineEdit(person_groupbox))
form_layout.addRow('Tên:', QLineEdit(person_groupbox))
form_layout.addRow('Ngày sinh:', QDateEdit(person_groupbox))
Tạo khung nhóm thứ hai cho "Thông tin liên hệ" và thêm các trường nhập liệu vào:
contact_groupbox = QGroupBox('Thông tin liên hệ')
form_layout = QFormLayout()
contact_groupbox.setLayout(form_layout)
form_layout.addRow('Số điện thoại:', QLineEdit(contact_groupbox))
form_layout.addRow('Địa chỉ Email:', QLineEdit(contact_groupbox))
Cuối cùng, đặt các khung nhóm vào cửa sổ chính:
layout.addWidget(person_groupbox) layout.addWidget(contact_groupbox)
Kết bài
Sử dụng lớp PyQt QGroupBox giúp bạn dễ dàng tạo các khung nhóm để tổ chức các widget con, giúp giao diện trở nên gọn gàng, trực quan và dễ quản lý hơn. Với việc phân chia các widget thành các nhóm có tiêu đề, người dùng có thể nhanh chóng nắm bắt được thông tin, từ đó nâng cao trải nghiệm và tính chuyên nghiệp cho ứng dụng của bạn.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng