Tôi mới phát triển Gtk + và đang cố gắng viết một ứng dụng bằng PyGObject và Gtk + 3.0. Khi tôi chạy ứng dụng của tôi trong Gnome Shell từ dòng lệnh, tuy nhiên, tên ứng dụng khi nó xuất hiện ở góc trên bên trái (ngay bên phải của góc nóng Hoạt động) chỉ được đặt thành tên của tệp nguồn Python mà tôi đã chạy để khởi động ứng dụng. Có cách nào để đặt tên xuất hiện trong Gnome Shell cho ứng dụng của tôi không? Tôi đã nhìn vào Gtk.Application, và mặc dù nó có vẻ như làm một số những gì tôi muốn (bắt đầu trong Gtk + 3,3, anyway), tôi dường như không thể tìm ra cách để sửa chữa tên hoạt động hoặc tên ứng dụng.Cách đặt tiêu đề ứng dụng trong Gnome Shell?
Trả lời
gnome-shell cố khớp cửa sổ với ứng dụng (ví dụ ShellApp
) và sử dụng tên đó. Mã này làm điều đó là ở đây: http://git.gnome.org/browse/gnome-shell/tree/src/shell-window-tracker.c#n328
Nhưng nếu nó không tìm thấy ShellApp
cho cửa sổ sau đó nó rơi trở lại bằng cách sử dụng ICCCM định WM_CLASS
(spec là tại http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5) ở đây: http://git.gnome.org/browse/gnome-shell/tree/src/shell-app.c#n361
Vì vậy, nếu bạn đang không cài đặt tệp .desktop để tìm tên ứng dụng từ bạn sẽ nhận được mặc định WM_CLASS
xuất hiện trong đó. GTK tự động tạo dựa trên tên thực thi. Bạn có thể ghi đè điều đó trước khi cửa sổ được nhận ra (điều này có nghĩa là trước khi gọi _show
trên cửa sổ) bằng cách sử dụng gtk_window_set_wmclass()
Đây là ví dụ đơn giản sẽ xuất hiện dưới dạng "Hello World". Đừng quên đặt tiêu đề cửa sổ nữa!
#!/usr/bin/python
from gi.repository import Gtk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_wmclass ("Hello World", "Hello World")
win.set_title ("Hello World")
win.show_all()
Gtk.main()
Đối với hậu thế: GNOME Shell hiển thị đối số cuối cùng cho 'set_wmclass' trong thanh trên cùng. – wjt
Trớ trêu thay là "Không sử dụng chức năng này". trong [tài liệu GTK] (https://developer.gnome.org/gtk3/stable/GtkWindow.html#gtk-window-set-wmclass). Tuy nhiên, tôi khuyên bạn nên sử dụng nó. – JayStrictor
Chức năng này không còn được dùng thay cho Gtk + 3.22. – Aeyoun
- 1. Xóa thanh tiêu đề trong Gnome
- 2. Qt tiêu đề ứng dụng
- 3. Đặt tiêu đề HTTP rộng của ứng dụng trong AngularJS
- 4. nền trong suốt trong Emacs trên Gnome Shell
- 5. Gọi phương thức DBus trong Gjs/Gnome Shell
- 6. Cách đặt tiêu đề QMainWindow
- 7. Đặt tiêu đề màn hình từ shellscript
- 8. Làm thế nào để thay đổi tiêu đề gnome-terminal trong Ubuntu 10
- 9. Tài liệu để viết các phần mở rộng Shell GNOME
- 10. Cách đặt chủ đề tối holo trong ứng dụng Android?
- 11. WebClient đặt tiêu đề
- 12. Cách thêm đối số vào liên kết trong menu gnome-shell
- 13. Android Cách thay đổi tiêu đề ứng dụng
- 14. Cách đặt tiêu đề bằng UITabbarsystemitem
- 15. Cách thêm tiêu đề CORS vào ứng dụng Meteor?
- 16. Đặt tiêu đề trang bằng cách sử dụng PHP
- 17. Tiêu đề "Đặt cookie"
- 18. cách đặt tiêu đề ['content-type'] = 'application/json' trong ruby
- 19. Cách đặt chuỗi tiêu đề yêu cầu
- 20. ColdFusion - cách đặt tiêu đề Content-Length
- 21. Đặt tiêu đề của UINavigationBar
- 22. Đặt văn bản tiêu đề của một tiêu đề QTreeView
- 23. Cách chạy ứng dụng C++ trong Android SHELL
- 24. Cách đặt tiêu đề "Máy chủ" tùy chỉnh trong HttpWebRequest?
- 25. Thay đổi tiêu đề gnome-terminal để phản ánh thư mục hiện tại?
- 26. cách đặt tiêu đề bằng nút-xà phòng trong node.js
- 27. Cách tự động đặt giá trị tiêu đề trong JSP
- 28. cách đặt thành tiêu đề CENTER trong AlertDialog?
- 29. Đặt tiêu đề yêu cầu trong JavaScript
- 30. Sử dụng đối tượng Shell trong Gjs
Tôi nghĩ rằng tên đó có thể được tìm nạp từ tệp '.desktop' được kết hợp với chương trình. –
Không chắc chắn, nhưng hãy thử 'GLib.set_application_name()' ở đầu chương trình của bạn? – ptomato