Chuyển tới nội dung chính

Bài 8: ComboBox trong guizero

1. ComboBox là gì?

ComboBox là ô chọn dạng thả xuống (dropdown). Người dùng có thể chọn một mục từ danh sách các lựa chọn. Thường dùng trong form chọn quốc gia, giới tính, loại dữ liệu…


2. Cú pháp tạo ComboBox

from guizero import App, ComboBox

app = App()
combo = ComboBox(app, options=["A", "B", "C"])
app.display()

3. Các thuộc tính quan trọng

➤ Lấy và đặt giá trị

value = combo.value
combo.value = "B"

➤ Thay đổi danh sách lựa chọn

combo.options = ["Red", "Green", "Blue"]

➤ Lấy tất cả mục trong ComboBox

all_items = combo.options

➤ Không cho nhập tay (chỉ cho chọn)

combo = ComboBox(app, options=["A", "B"], editable=False)

4. Sự kiện khi chọn mục

def on_select():
print("Bạn chọn:", combo.value)

combo = ComboBox(app, options=["A", "B"], command=on_select)

5. Ví dụ đầy đủ

from guizero import App, ComboBox, Text, PushButton, info

app = App(title="Demo ComboBox")

Text(app, "Chọn quốc gia:")

combo = ComboBox(app, options=["Vietnam", "Japan", "USA", "UK"])

def show():
info("Kết quả", f"Bạn chọn: {combo.value}")

PushButton(app, text="Xác nhận", command=show)

app.display()

🎯 BÀI TẬP LUYỆN TẬP

Bài tập 1 – Chọn giới tính

Tạo ComboBox với các lựa chọn: "Nam", "Nữ", "Khác". Nút “Xem kết quả” → hiện thông báo sau khi chọn.


Bài tập 2 – Chọn tháng

Tạo ComboBox chứa danh sách 12 tháng. Khi chọn tháng → in ra màn hình console: "Tháng bạn chọn là: X" (dùng command=).


Bài tập 3 – Thêm mục mới vào ComboBox

Tạo giao diện gồm:

  • TextBox để nhập mục mới
  • ComboBox
  • Nút “Thêm” → thêm mục vào ComboBox
  • Nút “Xoá mục đang chọn” → xóa mục hiện tại khỏi ComboBox

Gợi ý:

combo.options = combo.options + [textbox.value]