PyGTK - Lớp Notebook
Tiện ích máy tính xách tay là một vùng chứa theo thẻ. Mỗi tab trong vùng chứa này chứa một trang khác nhau và các trang được xem theo cách chồng lên nhau. Bất kỳ trang mong muốn nào cũng được hiển thị bằng cách nhấp vào nhãn của tab. Các nhãn có thể được cấu hình để hiển thị trên cùng hoặc dưới cùng hoặc bên trái hoặc bên phải. Một widget vùng chứa với các widget khác được đặt trong đó hoặc một widget duy nhất được đặt dưới mỗi trang.
Nếu dữ liệu được hiển thị quá lớn trong một lần xem, dữ liệu đó sẽ được nhóm thành các trang khác nhau, mỗi trang được đặt dưới một tab của tiện ích Notebook. Loại điều khiển này được sử dụng rất rộng rãi. Ví dụ: trình duyệt Internet sử dụng màn hình theo thẻ này để hiển thị các trang khác nhau trong các tab khác nhau.
Sau đây là một hàm tạo của lớp gtk.Notebook -
gtk.Notebook()
Sau đây là các phương thức thường dùng của lớp gtk.Notebook -
append_page(child, label)- Thao tác này nối một trang vào sổ ghi chép có chứa tiện ích con được tab_label chỉ định làm nhãn trên tab. Nếu tab_label có thể là Không để sử dụng nhãn mặc định.
insert_page(child, label, position) - Thao tác này sẽ chèn một trang vào sổ ghi chép tại vị trí được chỉ định bởi vị trí.
remove_page(index) - Thao tác này sẽ xóa một trang tại chỉ mục được chỉ định.
get_current_page() - Điều này trả về chỉ mục trang của trang hiện tại.
set_current_page(index) - Điều này chuyển sang số trang được chỉ định bởi chỉ mục.
set_show_tabs()- Nếu sai, các tab sẽ không hiển thị. Đây là True theo mặc định.
set_tab_pos(pos)- Điều này đặt cạnh mà tại đó các tab để chuyển trang trong sổ ghi chép được vẽ. Các hằng số được xác định trước là -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Thao tác này tạo một nhãn mới với văn bản được chỉ định và đặt nó làm nhãn tab cho trang chứa con.
Tiện ích gtk.Notebook phát ra các tín hiệu sau:
thay đổi-hiện-trang | Điều này được phát ra khi yêu cầu chuyển tiếp trang hoặc lùi trang được đưa ra |
tab tiêu điểm | Điều này được phát ra khi tiêu điểm được thay đổi bằng cách tab. |
đã thêm trang | Điều này được phát ra khi một trang được thêm vào sổ ghi chép. |
trang bị xóa | Điều này được phát ra sau khi một trang được xóa khỏi sổ ghi chép. |
trang chọn | Điều này được phát ra khi một trang con mới được chọn. |
chuyển trang | Điều này được phát ra khi trang sổ ghi chép được thay đổi. |
Thí dụ
Trong ví dụ sau, một gtk.Notebook có ba trang được đặt trong một gtk.Window cấp cao nhất. Trang đầu tiên chứa một VBox trong đó nhãn và trường Mục nhập được đóng gói. Trang thứ hai có nhãn 'bằng cấp' có một HButtonBox, trong đó ba widget RadioButton loại trừ lẫn nhau được thêm vào. Trang thứ ba có một đối tượng TextView. Các nhãn trang được hiển thị ở trên cùng.
Quan sát mã -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Notebook Demo")
self.set_default_size(250, 200)
nb = gtk.Notebook()
nb.set_tab_pos(gtk.POS_TOP)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
nb.append_page(vbox)
nb.set_tab_label_text(vbox, "Name")
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
nb.append_page(hb)
nb.set_tab_label_text(hb, "Qualification")
tv = gtk.TextView()
nb.append_page(tv)
nb.set_tab_label_text(tv, "about")
self.add(nb)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
Khi thực thi, đoạn mã trên sẽ hiển thị một Notebook có ba trang -