Red de conocimiento informático - Conocimiento del nombre de dominio - Cita reimpresa: Enseñarle cómo usar Qt para crear un formulario transparente, setMask, Qt, Opacity para obtener respuestas

Cita reimpresa: Enseñarle cómo usar Qt para crear un formulario transparente, setMask, Qt, Opacity para obtener respuestas

El archivo adjunto es una representación.

Qt proporciona la función setOpacity, pero después de usarla, todos los subcontroles del formulario se vuelven del mismo color transparente.

Aquí usamos la función setMask(), tomamos QBitmap como parámetro y realizamos operaciones detalladas en QBitmap (la clave es que QBitmap admite el dibujo directo con el pintor), y finalmente logramos este efecto: quiero transparencia El lugar donde queremos colocar el componente se vuelve transparente y el lugar donde queremos colocar el componente se vuelve opaco y visible. Esto logra el efecto que queremos.

El método de implementación específico también es muy simple: si desea dibujar algo en paintEvent, también debe dibujarlo en QBitmap al mismo tiempo. La premisa es que el rgb del pincel está configurado. a QRgb(0) al dibujar en QBitmap, 0,0).

Te he explicado la verdad claramente. Puedes poner el código en tu propia clase y experimentar.

El ejemplo es solo la demostración más simple. Siguiendo esta idea, creo que podemos hacer aplicaciones más flexibles, como hacer que el formulario sea transparente y no transparente (debe preparar una imagen png transparente correspondiente). , o puede utilizar la función Qt correspondiente). Lo más importante es que la operación de transparencia en este método no afectará a los controles secundarios.