PyGTK - Lớp SpinButton
Tiện ích SpinnButton, thường được gọi là Spinner là một tiện ích gtk.Entry với các mũi tên lên và xuống ở bên phải của nó. Người dùng có thể nhập giá trị số trực tiếp vào đó hoặc tăng hoặc giảm bằng cách sử dụng các mũi tên lên và xuống. Lớp gtk.SpinButton được kế thừa từ lớp gtk.Entry. Nó sử dụng một đối tượng gtk.Adjustment mà phạm vi và bước của giá trị số trong vòng xoay có thể bị hạn chế.
Tiện ích SpinButton được tạo bằng cách sử dụng hàm tạo sau:
sp = gtk.SpinButton(adj, climb_rate, digits)
Ở đây, adj đại diện cho gtk.Adjustment object controlling range, climb_rate là một hệ số gia tốc và số lượng các số thập phân được chỉ định bởi các chữ số.
Lớp gtk.SpinButton có các phương thức sau:
SpinButton.set_adjustment () - Điều này đặt thuộc tính "điều chỉnh".
SpinButton.set_digits () - Điều này đặt thuộc tính "chữ số" thành giá trị để xác định số vị trí thập phân được hiển thị bởi nút quay.
SpinButton.set_increments (bước, trang) - Giá trị này đặt giá trị bước được áp dụng cho mỗi lần nhấn nút chuột trái và giá trị trang được áp dụng cho mỗi lần nhấn nút giữa.
SpinButton.set_range () - Điều này đặt giá trị tối thiểu và tối đa cho phép cho spinbutton.
SpinButton.set_value () - Điều này đặt nút xoay thành giá trị mới theo lập trình.
SpinButton.update_policy () - Các giá trị hợp lệ là gtk.UPDATE_ALWAYS và gtk.UPDATE_VALID
SpinButton.spin (hướng, số gia = 1) - Điều này tăng hoặc giảm giá trị của Spinner theo hướng được chỉ định.
Sau đây là các hằng số hướng được xác định trước:
gtk.SPIN_STEP_FORWARD | về phía trước từng bước_increment |
gtk.SPIN_STEP_BACKWARD | lùi lại theo step_increment |
gtk.SPIN_PAGE_FORWARD | về phía trước từng bước_increment |
gtk.SPIN_PAGE_BACKWARD | lùi lại theo step_increment |
gtk.SPIN_HOME | chuyển đến giá trị nhỏ nhất |
gtk.SPIN_END | di chuyển đến giá trị lớn nhất |
gtk.SPIN_USER_DEFINED | thêm gia số vào giá trị |
SpinButton.set_wrap () - Nếu giá trị bọc là Đúng, giá trị nút xoay sẽ bao quanh giới hạn ngược lại khi giới hạn trên hoặc dưới của phạm vi vượt quá.
Tiện ích gtk.SpinButton phát ra các tín hiệu sau:
thay đổi giá trị | Điều này được phát ra khi giá trị nút xoay được thay đổi bằng thao tác bàn phím |
đầu vào | Điều này được phát ra khi giá trị thay đổi. |
đầu ra | Điều này được phát ra khi giá trị hiển thị nút quay được thay đổi. Lợi nhuậnTrue nếu trình xử lý đặt thành công văn bản và không cần xử lý thêm. |
giá trị thay đổi | Điều này được phát ra khi bất kỳ cài đặt nào thay đổi cách hiển thị của nút xoay được thay đổi. |
bọc | Điều này được phát ra ngay sau khi nút quay kết thúc từ giá trị lớn nhất đến giá trị nhỏ nhất hoặc ngược lại. |
Thí dụ
Ví dụ sau đây tạo ra một Date Selectorbằng cách sử dụng ba tiện ích SpinButton. Bộ chọn ngày được áp dụng đối tượng Điều chỉnh để hạn chế giá trị trong khoảng 1—31. Bộ chọn thứ hai dành cho số tháng 1—12. Bộ chọn thứ ba chọn phạm vi năm 2000—2020.
Quan sát mã -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("SpinButton Demo")
self.set_size_request(300, 200)
self.set_position(gtk.WIN_POS_CENTER)
self.set_border_width(20)
vbox = gtk.VBox(False, 5)
hbox = gtk.HBox(True, 3)
lbl1 = gtk.Label("Date")
hbox.add(lbl1)
adj1 = gtk.Adjustment(1.0, 1.0, 31.0, 1.0, 5.0, 0.0)
spin1 = gtk.SpinButton(adj1, 0, 0)
spin1.set_wrap(True)
hbox.add(spin1)
lbl2 = gtk.Label("Month")
hbox.add(lbl2)
adj2 = gtk.Adjustment(1.0, 1.0, 12.0, 1.0, 5.0, 0.0)
spin2 = gtk.SpinButton(adj2, 0, 0)
spin2.set_wrap(True)
hbox.add(spin2)
lbl3 = gtk.Label("Year")
hbox.add(lbl3)
adj3 = gtk.Adjustment(1.0, 2000.0, 2020.0, 1.0, 5.0, 0.0)
spin3 = gtk.SpinButton(adj3, 0, 0)
spin3.set_wrap(True)
hbox.add(spin3)
frame = gtk.Frame()
frame.add(hbox)
frame.set_label("Date of Birth")
vbox.add(frame)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
PyApp()
gtk.main()
Khi thực thi, đoạn mã trên sẽ tạo ra kết quả sau: