Tôi có một tiện ích tùy chỉnh để mô phỏng các mẹo bóng. Để được hiển thị đúng cách, tiện ích phụ thuộc vào thuộc tính QWidget Qt::WA_TranslucentBackground
. Ứng dụng của tôi sẽ hoạt động trên tất cả các nền tảng chính (Windows XP, Windows 7, Linux, Mac), vì vậy tôi lo lắng một chút: Thuộc tính này có sẵn trên tất cả các nền tảng chính không? Nếu không, tôi có thể truy vấn nếu nó được? testAttribute()
không làm điều đó. Nó chỉ trả về cho dù thuộc tính đã được thiết lập, không cho dù thiết lập nó có hiệu lực.Qt :: WA_TranslucentBackground có sẵn ở mọi nơi?
Trả lời
Điều này sẽ hoạt động với ngoại lệ duy nhất của Linux trên X11 khi cấu hình này không được hỗ trợ ARGB. Tham khảo tài liệu QWidget:
Tạo mờ của Windows
Kể từ khi Qt 4.5, nó đã có thể tạo ra các cửa sổ với mờ vùng trên các hệ thống cửa sổ hỗ trợ compositing.
Để kích hoạt tính năng này trong một widget cấp cao nhất, thiết lập của nó Qt :: WA_TranslucentBackground thuộc tính với setAttribute() và đảm bảo rằng nền của nó được sơn với màu sắc không đục ở các vùng bạn muốn trở thành một phần trong suốt .
vBulletin ghi chú:
X11: Tính năng này dựa trên việc sử dụng một máy chủ X có hỗ trợ hình ảnh ARGB và một quản lý cửa sổ hợp lại.
Windows: Tiện ích con cần có cờ cửa sổ Qt :: FramelessWindowHint được đặt để làm mờ.
Cân nhắc đọc đoạn văn có tiêu đề "Minh bạch và đệm đôi", có thể thú vị.
Đối với Linux, bạn nên kiểm tra xem compositing được kích hoạt:
bool QX11Info::isCompositingManagerRunning() [static]
ví dụ
#ifdef Q_WS_X11
if(QX11Info::isCompositingManagerRunning())
setAttribute(Qt::WA_TranslucentBackground);
#endif
Câu hỏi này cũ, nhưng điều này có thể giúp ai đó.
Và, đối với bất kỳ ai lang thang ngoài Google, nếu bạn thấy mình cần hỗ trợ máy tính để bàn không được tổng hợp cho một thứ như OSD tròn hoặc cửa sổ bật lên tiếng nói, Qt [ShapedClock] (https://doc.qt.io/ Ví dụ qt-5/qtwidgets-widgets-shapedclock-example.html) minh họa cách sử dụng 'setMask' để tạo ra một cửa sổ không vuông mà không cần kết hợp. – ssokolow
Lưu ý rằng đôi khi để có được 'Qt :: WA_TranslucentBackground' để làm việc trong linux mà không có' setMask', bạn cũng phải kích hoạt thêm một vài thuộc tính và một cờ cửa sổ. https://stackoverflow.com/a/30596357/999943 – phyatt
- 1. Chức năng Java (phương pháp) có sẵn ở khắp mọi nơi (toàn cầu)
- 2. Làm cho rake nhiệm vụ từ đá quý có sẵn ở khắp mọi nơi?
- 3. Tại sao "android:" ở khắp mọi nơi?
- 4. Ẩn con trỏ ở mọi nơi
- 5. java.util.Observable có được sử dụng ở mọi nơi không?
- 6. Hỗ trợ Android OpenGL ES ở mọi nơi?
- 7. là biến toàn cầu có thể truy cập ở mọi nơi bên trong chuỗi gọi lại?
- 8. Mọi thư viện ccTalk đều có sẵn?
- 9. Có cách nào để tránh $ this-> ở khắp mọi nơi không?
- 10. NSInteger có thực sự được sử dụng ở mọi nơi không?
- 11. Có ai ở đây tích hợp Team Explorer mọi nơi với Xcode không?
- 12. Mọi skin Eclipse đầy đủ có sẵn không?
- 13. Làm cách nào tôi có thể đặt nơi ứng dụng Qt tìm thấy mô-đun Qt?
- 14. Tìm ở khắp mọi nơi một enum được chuyển thành chuỗi
- 15. làm cách nào tôi có thể ghi lại mọi cuộc gọi phương thức trong node.js mà không cần thêm các dòng gỡ lỗi ở mọi nơi?
- 16. .NET WF4: Có nên ở giữa mọi thứ không?
- 17. Symfony 2.1 Đăng nhập REST API tới mọi nơi
- 18. Kết nối với visualstudio.com từ Team Explorer Mọi nơi CLC
- 19. Nơi tốt nhất để bắt đầu học Qt là gì?
- 20. Django và NoSQL, mọi thư viện sẵn sàng sử dụng?
- 21. Nơi tìm tất cả các thuộc tính thư Java có sẵn?
- 22. Heroku, Thin và mọi thứ ở giữa
- 23. tiêm tấn công (Tôi nghĩ rằng tôi đã được bảo vệ!) <? Php/**/eval (base64_decode (ở khắp mọi nơi
- 24. Tại sao CSS này không hoạt động cho Chrome trên Android nhưng hoạt động ở mọi nơi khác?
- 25. Tại sao nội dung công việc chính sách an ninh của tôi ở khắp mọi nơi nhưng Safari
- 26. Phế liệu của Haskell Boilerplate (SYB) của bạn - chỉ áp dụng chuyển đổi một lần thay vì ở mọi nơi
- 27. Lợi ích của thiết kế không cần thiết là gì nếu bạn cần xóa các khối ở khắp mọi nơi?
- 28. #include ở bất cứ nơi nào
- 29. LINQ- Max ở nơi mà điều kiện
- 30. QT CREATOR - tôi đặt thư viện/NODEFAULTLIB: ở đâu?
Mức độ phổ biến hay hiếm đối với một Linux hiện đại không hỗ trợ ARGB? Tôi có thể bằng cách nào đó truy vấn nó? –
Tôi không nghĩ rằng bạn sẽ có vấn đề với điều đó với phần cứng/bản phân phối gần đây. Dù sao, bạn sẽ nhận được thông tin bằng cách sử dụng xdpyinfo hoặc xem tập tin cấu hình xorg.conf. Bạn có thể có một số vấn đề với hệ thống Linux nhúng có thể. Điều này cung cấp thêm điều gì đó: http://stackoverflow.com/questions/2434511/what-pixel-format-does-x-server-use. –