2013-05-24 30 views
6

Tôi hiện đang phát triển một ứng dụng nhỏ bằng Python với việc sử dụng GTK + (và Glade). Tất cả mọi thứ đã được khá đơn giản để tích hợp cho đến nay, cho đến khi tôi đưa ra ý tưởng để thêm các tab thay vì pop-up. Lưu ý: Vẫn đang sử dụng Python 2.7+Máy tính xách tay GTK (Glade) của Python

Có cách nào dễ dàng để triển khai các trang hiện có bên trong cấu trúc giống như một tab mới? Tôi đang gặp khó khăn để tìm cách thêm nội dung cho mỗi tab riêng được tạo trong glade. Đổ thêm một câu hỏi 'rõ ràng hơn': Chức năng Notebook nào sẽ được yêu cầu để gọi một V/HBox cụ thể với mỗi tab khác nhau? Cấu trúc hiện tại trông giống như (trừ đơn/statusbar):

[ mainWindow ] --> (1) mainOverview (gtkVbox) --> (2A) mainContent (gtkHbox) ... other non-related content

Cấu trúc Tôi đã hy vọng cho sẽ trông như thế:

[ mainWindow ] --> (1) mainOverview --> (2) noteBook --> (3) Tab1 --> (4) mainContent (gtkHbox) -- (3) Tab2 --> (4) secondaryContent (gtkHbox)

Bản thân ứng dụng hoạt động tốt (multithreaded, đầy đủ hoạt động) mà không có các tab, mainContent(gtkHbox) chứa một tệp/phân tích thư mục đệ quy, một vài hộp kiểm và tổng quan chung. Tôi đã hy vọng một cách dễ dàng để hiển thị cửa sổ chính này (gtkHbox) CHỈ khi đã chọn Tab1.

Gặp khó khăn khi tìm các trang tham chiếu tốt hiển thị một cách thích hợp để gọi các trang nội dung trên mỗi tab sổ ghi chép. Bất kỳ trang tham chiếu nào hoặc các liên kết hữu ích đều được đánh giá rất cao! Cảm ơn cho đến nay! Lời xin lỗi của tôi nếu đây là một câu hỏi khá mới mẻ, tôi không phải là mới đối với Python mã hóa, nhưng giao diện mặt khác ...;)

+3

Umm bạn gặp khó khăn khi thêm nội dung trong chế độ glade cho mỗi trang? Nếu bạn nhấp đúp vào tab, sau đó trang đó được chọn để thêm nội dung vào chế độ glade. Bạn có thể tiếp tục và thêm nội dung cho trang đó. Đối với chuyển đổi, bạn có thể sử dụng ['set_current_page'] (https://developer.gnome.org/pygtk/2.24/class-gtknotebook.html#method-gtknotebook--set-current-page) để chuyển sang trang có nội dung mà bạn muốn hiển thị. Đăng ký tín hiệu ['" switch-page "'] (https://developer.gnome.org/pygtk/2.24/class-gtknotebook.html#signal-gtknotebook--switch-page) để tìm ra trang nào đã được chuyển đến. –

+1

@ another.anon.coward: Tôi chưa bao giờ nhận ra điều này đơn giản như thế. Tôi đã hy vọng cho một giải pháp đơn giản nằm bên trong mã chính nó, nhưng không bao giờ đưa ra ý tưởng bạn chỉ có thể 'kéo' H/VBoxes cho mỗi Tab trong chính Glade! Cảm ơn bạn rất nhiều! :) – Mark

Trả lời

0

Không phải là câu trả lời, nhưng có vẻ như "another.anon.coward" đã có đã trả lời câu trả lời này trong một nhận xét ...

Nếu bạn nhấp đúp vào tab, sau đó trang đó được chọn để thêm nội dung trong glade. Bạn có thể tiếp tục và thêm nội dung cho trang đó. Đối với chuyển đổi, bạn có thể sử dụng set_current_page để chuyển sang trang có nội dung bạn muốn hiển thị. Đăng ký tín hiệu "chuyển trang" để tìm xem trang nào đã được chuyển sang.