Tôi có một widget tùy chỉnh và nó cần phải khởi động một MessageDialog và để cho tôi để đặt hộp thoại tin nhắn trên đầu trang của cửa sổ widget của tôi là sau đó tôi cần truy cập vào các gtk.window cha mẹ. Có cách nào để có cửa sổ GTK gốc không? Cảm ơnBạn có thể tải cửa sổ GTK gốc từ tiện ích con không?
10
A
Trả lời
8
Các tài liệu GTK đề nghị:
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
if (gtk_widget_is_toplevel (toplevel))
{
/* Perform action on toplevel. */
}
get_toplevel sẽ trở lại widget trên cùng bạn bên trong, có hay không đó là một cửa sổ, do đó việc kiểm tra is_toplevel. Yeah cái gì đó được đặt tên sai vì mã trên làm một "get_toplevel()" sau đó một "is_toplevel()" tức thời (rất có thể, get_toplevel() nên được gọi là cái gì khác).
2
Mặc dù gtk_widget_get_toplevel sẽ hoạt động, bạn cũng có thể thử mã bên dưới. Nó sẽ nhận được cửa sổ gtk gốc cho tiện ích đã cho và in tiêu đề của nó.
GdkWindow *gtk_window = gtk_widget_get_parent_window(widget);
GtkWindow *parent = NULL;
gdk_window_get_user_data(gtk_window, (gpointer *)&parent);
g_print("%s\n", gtk_window_get_title(parent));
hy vọng điều này giúp, coi
5
Trong pygtk, bạn có thể nhận được các mục cấp đầu như toplevel = mywidget.get_toplevel()
sau đó ăn toplevel
trực tiếp đến gtk.MessageDialog()
Các vấn đề liên quan
- 1. Tải mọi tiện ích con của cửa sổ Tkinter
- 2. Bạn có thể tập trung cửa sổ bật lên từ Tiện ích mở rộng của Chrome
- 3. Làm cách nào để bạn tìm thấy vị trí tuyệt đối của tiện ích GTK trong cửa sổ?
- 4. Tải lại cửa sổ cha mẹ từ cửa sổ con
- 5. Tiện ích con có thể có một ngữ cảnh không?
- 6. GTK: Danh sách các tiện ích vô hạn lười biếng
- 7. Gọi JavaScript của cửa sổ mẹ từ cửa sổ con
- 8. GWT có tiện ích con Đoạn không?
- 9. Tiện ích con Android không cập nhật - có ID tiện ích không chính xác
- 10. tiện ích chrome, chiều cao cửa sổ bật lên
- 11. Có cách nào tốt để sao chép tiện ích Gtk không?
- 12. Cách hiển thị tiện ích bên trong cửa sổ chính
- 13. Python + webkit + gtk trên cửa sổ
- 14. Làm cách nào để có cửa sổ gdk cho cửa sổ gtk trong C?
- 15. Tiện ích mở rộng của Google Chrome - Cửa sổ bật lên có lập trình mở
- 16. Cách vẽ bất kỳ tiện ích GTK nào trên bề mặt Cairo
- 17. Mở URL trong tab/cửa sổ hiện tại từ Tiện ích mở rộng của Firefox
- 18. Cách kiểm tra xem tiện ích con giao diện người dùng jQuery có được tải không?
- 19. Tiện ích mở rộng của Firefox để đóng cửa sổ firefox
- 20. Tiện ích mở rộng của Firefox: kiểm tra xem cửa sổ có bị thu nhỏ
- 21. C++ truy cập các tiện ích con từ một hàm
- 22. xử lý python với 2 cửa sổ gtk
- 23. Làm mới cửa sổ mẹ từ cửa sổ con trong javascript
- 24. vẽ pyqt trên tiện ích con xuất hiện của GUI
- 25. Mất tiện ích khi sử dụng FileReference tải xuống
- 26. WM_EX_TRANSPARENT không sơn lại cửa sổ con
- 27. cách mở ứng dụng từ tiện ích con trong android?
- 28. bằng FindWindow với nhiều cửa sổ gốc
- 29. Qt: Cách tạo cửa sổ cài đặt như trong GTK
- 30. Tkinter có tiện ích bảng không?
này có một đường vòng không cần thiết thông qua gunge GDK ở mức độ thấp - tốt hơn để ở với lớp GTK. Ở đây bạn yêu cầu widget phải được nhận ra và có thể có vấn đề trong GTK 3. –
"mặc dù phương pháp được đề xuất phù hợp sẽ hoạt động, bạn cũng có thể thử thay thế phức tạp không cần thiết này vì không có lý do rõ ràng" ... hoặc là có một .. .? –