Tôi đang viết một máy tính để bàn. Tôi đã biết những điều cơ bản về Qt và GTK + thông qua Python nhưng tôi không hiểu cách hiển thị màn hình nền đã hoàn thành. Làm thế nào để bạn làm cho nó trở thành cửa sổ gốc của một Trình quản lý cửa sổ, hoặc là có một phương pháp để hiển thị màn hình mà tôi không quen thuộc?Máy tính để bàn tạo cửa sổ máy tính để bàn?
Trả lời
Bạn không đặt cửa sổ gốc. X có một cửa sổ gốc mà bạn không thể thay đổi. Có một số cách để làm những gì bạn muốn
- X gốc cửa sổ
Cách cũ là máy tính để bàn chỉ là cửa sổ X gốc chuẩn. Các biểu tượng chỉ là các cửa sổ không viền riêng lẻ.
- Desktop Window
Bây giờ hầu hết các hệ thống mở một cửa sổ lớn, và đánh dấu nó như là một cửa sổ máy tính để bàn. Hầu hết các nhà quản lý cửa sổ sau đó biết không bao giờ để nâng cao nó trên bất kỳ cửa sổ khác. Cửa sổ gốc X vẫn còn phía sau nó, nhưng nó bị ẩn. Điều này có nghĩa là bạn có thể làm bất cứ điều gì bạn muốn trên cửa sổ này, vẽ nó, bao gồm các biểu tượng hoặc widget hoặc bất cứ thứ gì mà bộ công cụ của bạn có thể làm.
Nếu bạn đang sử dụng Gtk + thì thông tin liên quan được tìm thấy trong trường hợp GdkWindowTypeHint
enum, cụ thể là GDK_WINDOW_TYPE_HINT_DESKTOP
. Các tài liệu có thể được tìm thấy ở đây: GdkWindow
- Trình biên soạn
Tuy nhiên, có một cách mới hơn máy tính để bàn như Gnome3 hoặc sử dụng Unity, được gọi là Trình biên soạn Overlay Window. Khi một compositor đang chạy có một cửa sổ lớp phủ bao phủ tất cả các cửa sổ trên hệ thống. Đó là sau đó lên đến compositor để vẽ các nội dung thực tế của các cửa sổ trên lớp phủ này. Tuy nhiên, lớp phủ có thể vẽ bất kỳ thứ gì nó muốn trên cửa sổ lớp phủ này. Ví dụ, trong Gnome3 khi bạn nhập bộ chọn cửa sổ và các cửa sổ sắp xếp chúng vào một lưới các cửa sổ không thực sự di chuyển và co lại, các compositor vừa quyết định vẽ chúng theo cách đó. Trong thực tế, các cửa sổ vẫn ở cùng vị trí trước đây, nhưng ẩn dưới lớp phủ này.
Đây là một cách rất tiên tiến để làm mọi thứ và chắc chắn không dành cho nhà phát triển mới làm quen. Bạn có thể muốn tập trung vào phương pháp thứ hai.
Có giải pháp dựa trên Qt không? – Christopher
Tôi sẽ tưởng tượng như vậy. Bạn cần phải hỏi họ – iain
- 1. Phiên, cửa sổ và máy tính để bàn
- 2. MVC.NET cho máy tính để bàn
- 3. Ứng dụng Máy tính để bàn Python
- 4. OpenGL | ES trên máy tính để bàn
- 5. Scala cho máy tính để bàn
- 6. Sự khác biệt giữa ứng dụng dành cho máy tính để bàn và ứng dụng không phải máy tính để bàn trong cửa sổ
- 7. Giao tiếp giữa dịch vụ cửa sổ và ứng dụng dành cho máy tính để bàn
- 8. cách đặt wpf MessageBox.Owner thành cửa sổ máy tính để bàn vì SplashScreen đóng MessageBox
- 9. vẽ theo biểu tượng trên máy tính để bàn
- 10. Chụp màn hình của máy tính để bàn ẩn
- 11. cygwin ssh phím tắt từ cửa sổ máy tính để bàn
- 12. Vẽ trên nền máy tính để bàn (WIN32)
- 13. Kéo và thả từ các cửa sổ biểu mẫu sang máy tính để bàn và cửa sổ thám hiểm
- 14. Mua ứng dụng cho máy tính để bàn
- 15. Mô phỏng cụm máy tính trên máy tính để bàn đơn giản để kiểm tra các thuật toán song song
- 16. Apache Felix cho ứng dụng máy tính để bàn
- 17. Ứng dụng máy tính để bàn Java trên da?
- 18. Chụp ảnh màn hình máy tính để bàn bằng javascript
- 19. MVC và Swing trong ứng dụng máy tính để bàn
- 20. FileSystemWatcher gây ra sự cố cho máy tính để bàn
- 21. VLC máy tính để bàn phát trực tuyến
- 22. Chrome 22 gây nhầm lẫn cho máy tính bảng và máy tính để bàn
- 23. Phát triển OpenGL ES trên máy tính để bàn
- 24. C# tham chiếu đến máy tính để bàn
- 25. BIRT trong ứng dụng dành cho máy tính để bàn
- 26. C# Ứng dụng dành cho máy tính để bàn?
- 27. Python trong Phát triển ứng dụng máy tính để bàn
- 28. C#: Nhận kích thước máy tính để bàn hoàn chỉnh?
- 29. Đặt hình nền cho máy tính để bàn với JavaScript
- 30. Đặt trước một phần màn hình máy tính để bàn
Kiểm tra lệnh này: 'wmctrl -k on'. Nó sẽ hiển thị "desktop", nếu WM hỗ trợ như vậy. Vì vậy, nếu bạn theo dõi các lệnh (có thể vào WM), bạn sẽ tìm thấy một câu trả lời cho cách máy tính để bàn được xác định. –
Bạn có thể xem mã của hộp đen (http://sourceforge.net/projects/blackboxwm/), đây là trình quản lý cửa sổ thực sự đơn giản. –