Tôi muốn bật lên menu ngữ cảnh khi người dùng nhấp chuột phải vào hàng tiêu đề của Gtk.TreeView
. Trong GTK3, Gtk.TreeViewColumn
có phương thức get_button(), điều này giúp dễ dàng; chỉ cần đính kèm menu vào nút và kết nối nó với sự kiện 'được nhấp'. Tuy nhiên, trong GTK2, điều này sẽ không hoạt động. Bạn chỉ có thể gọi phương thức get_widget()
, trả về Không nếu bạn chưa đặt tiện ích qua set_widget()
. Tôi đã thử đặt một Gtk.Label
với tên cột vào một Gtk.EventBox
và đặt làm tiện ích Sau khi kết nối EventBox
với gọi lại cho 'button_press_event', việc nhấp vào nó không tạo ra sự kiện.Làm cách nào để bạn đính kèm menu bật lên vào nút tiêu đề cột trong GTK2 bằng PyGObject?
Tôi đã cố gắng làm một cái gì đó giống như những gì được liệt kê here nhưng làm get_parent()
trên tiện ích cột trả về Không có và không bao giờ đạt đến nút như mã của chúng.
Giải pháp nào mà mọi người tìm thấy cho điều này?
Tôi nên làm rõ rằng bằng "trong GTK2, điều này sẽ không hoạt động", tôi nên nói, "trong GTK2, phương thức' get_button() 'không được triển khai. –
Bây giờ tôi cũng tìm ra rằng' menu.attach_to_widget() 'và' menu.popup() 'dường như không thể quan sát được trong GTK2.Theo [PyGObject site] (https://live.gnome.org/PyGObject/IntrospectionPorting), trong menu GTK3' menu.popup() 'đã được thực hiện thông qua một ghi đè, tuy nhiên tôi không thể tìm thấy tài liệu về cách thức này được thực hiện –