Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Sử dụng PyQt QComboBox để tạo Widget Combobox
Trong bài này, bạn sẽ học cách sử dụng lớp QComboBox
của PyQt để tạo một widget combobox. Combobox là một widget hữu ích cho phép người dùng chọn một mục từ danh sách các tùy chọn. Đây là một công cụ quan trọng trong giao diện người dùng, giúp tiết kiệm không gian và cải thiện trải nghiệm người dùng bằng cách cung cấp một danh sách các lựa chọn có thể mở rộng khi cần.
Bạn sẽ tìm hiểu cách tạo một combobox, thêm các mục vào nó, và xử lý các sự kiện khi người dùng chọn một mục từ danh sách. Hãy cùng khám phá cách sử dụng lớp QComboBox
để nâng cao khả năng tương tác của ứng dụng PyQt của bạn.
Giới thiệu về PyQt QComboBox
Widget combobox cung cấp cho bạn một danh sách các tùy chọn để bạn có thể chọn một trong số đó. Combobox còn được gọi là widget dropdown hoặc select.
Để tạo một combobox, bạn sử dụng lớp QComboBox
:
Bài viết này được đăng tại [free tuts .net]
combobox = QComboBox(self)
Sau khi tạo combobox, bạn cần thêm các tùy chọn vào nó bằng các phương thức sau:
addItem()
– Thêm một mục vào cuối danh sách với một nhãn chuỗi và một giá trị dữ liệu.insertItem()
– Tương tự nhưaddItem()
, nhưng nhận một chỉ số cho tham số đầu tiên và thêm mục tại chỉ số đó trong danh sách.- Bạn cũng có thể sử dụng
addItems()
hoặcinsertItems()
để thêm một danh sách các tùy chọn cùng lúc.
Để lấy các mục đang được chọn hiện tại, bạn có thể sử dụng một trong các phương thức sau:
currentData()
– Trả về mục hiện tại đang được chọn.currentIndex()
– Trả về chỉ số của mục hiện tại đang được chọn.currentText()
– Trả về văn bản của mục hiện tại đang được chọn.
Tùy chọn, combobox cho phép bạn nhập văn bản nếu bạn đặt thuộc tính editable
của nó thành True
.
Thuộc tính insertPolicy
cho phép bạn thiết lập xem combobox có nên chèn các mục đã nhập vào danh sách hay không.
Ví dụ về PyQt QComboBox
Dưới đây là ví dụ về cách sử dụng lớp QComboBox
để tạo một combobox:
import sys from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QComboBox from PyQt6.QtCore import Qt class MainWindow(QWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('PyQt QComboBox') self.setMinimumWidth(300) # Tạo layout dọc layout = QVBoxLayout() self.setLayout(layout) cb_label = QLabel('Vui lòng chọn nền tảng:', self) # Tạo combobox self.cb_platform = QComboBox(self) self.cb_platform.addItem('Android') self.cb_platform.addItem('iOS') self.cb_platform.addItem('Windows') self.cb_platform.activated.connect(self.update) self.result_label = QLabel('', self) layout.addWidget(cb_label) layout.addWidget(self.cb_platform) layout.addWidget(self.result_label) # Hiển thị cửa sổ self.show() def update(self): self.result_label.setText(f'Bạn đã chọn {self.cb_platform.currentText()}') if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())
Kết quả:
Cách hoạt động
Tạo Widget Combobox:
self.cb_platform = QComboBox(self)
-
Đoạn mã trên tạo một widget combobox.
Thêm Các Mục:
self.cb_platform.addItem('Android') self.cb_platform.addItem('iOS') self.cb_platform.addItem('Windows')
-
Các mục được thêm vào combobox bằng phương thức
addItem()
.
Kết Nối Tín Hiệu:
self.cb_platform.activated.connect(self.update)
-
Tín hiệu
activated
được phát ra khi bạn thay đổi mục của combobox.
Xác Định Phương Thức update()
:
def update(self): self.result_label.setText(f'Bạn đã chọn {self.cb_platform.currentText()}')
Phương thức update()
cập nhật văn bản của result_label
với mục đang được chọn trong combobox. Chúng ta sử dụng phương thức currentText()
để lấy văn bản của mục hiện tại.
Kết bài
Trong bài viết này, bạn đã học cách sử dụng lớp QComboBox
của PyQt để tạo một combobox, một công cụ quan trọng trong việc tạo giao diện người dùng tương tác. Bạn đã biết cách thêm các mục vào combobox bằng phương thức addItem()
hoặc insertItem()
và kết nối tín hiệu activated
để thực hiện các hành động khi người dùng thay đổi lựa chọn.
Với các kiến thức này, bạn có thể dễ dàng tích hợp các combobox vào ứng dụng PyQt của mình, giúp cải thiện trải nghiệm người dùng bằng cách cung cấp một cách thuận tiện để chọn từ danh sách các tùy chọn. Hãy áp dụng những kỹ thuật này để tạo ra các giao diện người dùng thân thiện và hiệu quả hơn cho ứng dụng của bạn.