Tôi đang tạo một ứng dụng bằng cách sử dụng Qt bao gồm một tiện ích được sử dụng làm nền của ứng dụng và giao diện điều khiển người dùng đang nổi ở trên.Làm thế nào để Layer widget độc lập trong Qt?
Ví dụ tương tự là bản đồ google, nơi bản đồ ở chế độ nền và các điều khiển nằm trên nền.
Nhưng điều này là widget nền có thể được thay đổi để một widget khác nhau (có một widget mà sẽ hiển thị một bản đồ, một widget mà hiển thị cấp dữ liệu video, ...)
Và điều tương tự sẽ xảy ra cho các nút trong giao diện điều khiển người dùng, chúng không liên quan trực tiếp đến nền hiện tại và có thể thay đổi theo chế độ ăn tối.
Tôi đã thử sử dụng QStackedLayout, sử dụng hai lớp, tiện ích nền và giao diện điều khiển người dùng. Nhưng bạn không thể tương tác với lớp nền vì tất cả các nhấp chuột đều bị chặn bởi tiện ích ở phía trước.
Mọi đề xuất?
Đó là cách tiếp cận tôi đã theo dõi, tôi đã nhóm tất cả các điều khiển thành một tiện ích duy nhất, trong đó chứa chúng với bố cục thích hợp. Nhưng vấn đề là, ngay cả khi có một vài vật dụng nằm rải rác trên màn hình, Widget điều khiển này chiếm toàn bộ màn hình và chặn các sự kiện nhấp chuột. Một điều tôi tin rằng có thể giải quyết vấn đề này, là để thêm các điều khiển từng người một như các lớp riêng biệt trên các widget xếp chồng lên nhau. Bằng cách này, họ sẽ chỉ chặn các nhấp chuột trên đó. – Victor
Bạn có chắc chắn rằng bạn đang thêm tất cả các tiện ích của mình làm trẻ em của tiện ích con nền/kiểm soát này không? Hãy chắc chắn rằng các nhà xây dựng widget tùy chỉnh của bạn đang gọi hàm tạo mặc định QWidget và bạn đang thiết lập tiện ích con (có thể là nền) làm cha của tất cả các tiện ích con của bạn trong quá trình khởi tạo GUI. –
Vấn đề dường như là một trong những thảo luận ở đây: http://www.qtcentre.org/threads/45844-Mouse-events-with-StackAll-QStackedLayout Vì tôi đang sử dụng một stackedLayout với hai widget (nền và widget điều khiển), tiện ích điều khiển nằm ở trên cùng, đang chặn tất cả các sự kiện nhấp chuột. Tôi sẽ thử đặt tiện ích điều khiển làm trẻ em ở chế độ nền, thay vì chúng là anh chị em. – Victor