2013-02-03 37 views
5

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?

+0

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. –

+0

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. –

Trả lời

1

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.

+0

Có giải pháp dựa trên Qt không? – Christopher

+0

Tôi sẽ tưởng tượng như vậy. Bạn cần phải hỏi họ – iain

Các vấn đề liên quan