Tôi cần tạo một menu thay đổi nền của QWidget. Tôi muốn đặt một QIcon đại diện cho màu sắc được lựa chọn vào QActions mà điền QMenu. Tôi muốn không phải bật ra Photoshop và vẽ các biểu tượng theo cách thủ công. Có thể lập trình một biểu tượng đơn giản được lấp đầy bằng một màu nhất định không? Bằng cách này, tôi có thể có một số lượng QActions tùy ý nếu cần, và tôi sẽ không phải tạo ra toàn bộ các biểu tượng trong Photoshop. \Màu đơn giản điền QIcons trong Qt
Trả lời
Bạn có thể tạo QIcon từ QPixmap. QPixmap có thể được xây dựng với một kích thước nhất định, sau đó điền vào một màu bằng cách sử dụng 'điền'.
Ví dụ, để tạo ra một biểu tượng 100x100 đỏ:
QPixmap pixmap(100,100);
pixmap.fill(QColor("red"));
QIcon redIcon(pixmap);
Chỉ cần tìm ra cách để thay đổi màu sắc từ biểu tượng để bất kỳ màu nào khác. Do đó, hình ảnh của biểu tượng phải bao gồm một màu đồng nhất (ở đây: 'đen') có thể được chuyển đổi bằng cách sử dụng pixmap và khả năng che của nó thành màu khác (như 'đỏ'):
pixmap = QPixmap(filename)
mask = pixmap.createMaskFromColor(QColor('black'), Qt.MaskOutColor)
pixmap.fill((QColor('red')))
pixmap.setMask(mask)
btNew = QToolButton()
btNew.setIcon(QIcon(pixmap))
Cool, mặc dù createMaskFromColor (QColor ('transparent'), Qt.MaskInColor) hoạt động tốt hơn cho tôi – falkb
Chủ đề được gắn thẻ với C++, nhưng đây không phải là mã C++ hợp lệ. Có muốn chỉnh sửa nó nhưng các nhà phê bình đã từ chối nó vì những lý do tôi không biết. Bên cạnh đó, giải pháp làm việc cho tôi sau khi chuyển nó sang C++. – bns
Tôi nghĩ rằng bạn là đúng - Tôi không nhận ra rằng câu hỏi có liên quan đến C++ - nhưng tôi cũng nghĩ rằng nó không có nghĩa là để thay đổi một câu trả lời đã có rất nhiều ... Và tôi không biết nếu mã của bạn là ổn định - vì vậy tôi không thể chấp nhận nó cho bản thân mình. Tôi nghĩ, bạn nên tự trả lời! Cảm ơn gợi ý. – Henhuy
- 1. Qt - QApplication là gì, đơn giản?
- 2. Qt: Ví dụ đơn giản cho Quazip
- 3. PyPNG để vẽ một ô được điền đơn giản
- 4. Mongoose: Điền một trường được điền đơn
- 5. IDE JavaScript đơn giản
- 6. qt vẽ văn bản đầy màu sắc
- 7. đơn văn bản đơn giản trong Haskell
- 8. Tiện ích bảng điền từ tệp văn bản trong Qt
- 9. Nhận đa giác đơn giản
- 10. Threading đơn giản trong C#
- 11. Mẫu HTML đơn giản trong Python
- 12. Ứng dụng đơn lẻ trong Qt
- 13. Thế hệ T4 đơn giản cho POCO đơn giản
- 14. Đối tượng đơn giản của Python đơn giản
- 15. Đa luồng đơn giản với Qt: tôi có làm điều này đúng không?
- 16. Qt - Trình đơn bật lên
- 17. HowTo Crypt/Mã hóa một số chuỗi (ví dụ như mật khẩu) trên Qt đơn giản
- 18. Đang chuyển qt sang hệ điều hành khác đơn giản như thế này?
- 19. Máy khách TCP TCP đơn giản nhất
- 20. đơn giản CRUD hệ
- 21. Minimax đơn giản
- 22. GUI GUI đơn giản?
- 23. Qt & Qt Designer - Làm phụ tùng điền phụ huynh mà không cần đệm
- 24. Một singleton đơn giản
- 25. Dapper đơn giản mapping
- 26. Đơn giản pthread! C++
- 27. đơn giản TBB dụ
- 28. WPF mẹo và thủ thuật đơn giản?
- 29. Mẫu để tạo sự đơn giản an toàn cho thread đơn giản trong java
- 30. Có một `return` đơn giản trong một hàm PHP đơn giản là kết thúc hàm sớm?
Thao tác này sẽ điền chỉ những phần trong suốt của hình ảnh, phải không? Tôi có nghĩa là, điều này có thể được sử dụng để điền vào các phần trong suốt của một QIcon với màu sắc? – SexyBeast
Tôi sợ tôi không hiểu. Mã này tạo ra một biểu tượng hoàn toàn mới là một hình vuông màu đỏ chắc chắn. – cgmb