redondeados redondeadas esquinas div con bordes bootstrap c++ user-interface qt qt4

c++ - redondeadas - div con bordes redondeados bootstrap



QT4: ventana transparente con esquinas redondeadas (3)

¿Cómo puedo crear una ventana parcialmente transparente con bordes redondeados (sin bordes estándar)?

(Utilicé Qt::FramelessWindowHint para deshabilitar los bordes estándar)

Probé las hojas de estilo, pero border-radius y opacity no parecen tener ningún efecto en la ventana, solo funciona en los elementos secundarios del widget adjunto.

Mi segunda idea fue hacer que la ventana fuera completamente transparente (con setWindowOpacity ), y luego agregar un widget adicional con esquinas redondeadas (ya que border-radius funciona en los elementos secundarios), y luego agrupar todos mis otros widgets en ese widget. Pero eso no funciona, ya que setWindowOpacity afecta a todos los niños (no he encontrado una forma de cambiar este comportamiento).

Y cualquier forma de hacer que la ventana exterior sea transparente, podría pensar (como la opacity hojas de estilo) no funciona correctamente (solo obtengo una caja negra en lugar de una ventana transparente)

Cualquier ayuda sería muy apreciada.



Tuve un problema similar cuando quería pintar en un widget de nivel superior y solo aparecía la parte pintada. setWindowOpacity cambió la opacidad de la parte pintada, que no quería.

this->setAttribute(Qt::WA_TranslucentBackground, true);

cambió la opacidad del widget sin la parte pintada. Solo intenté arrojar un botón, y eso también se muestra perfectamente opaco. Por lo tanto, debería poder mostrar a otros niños como prefiera.


void MainForm::resizeEvent(QResizeEvent * /* event */) { QImage image(this->size(), QImage::Format_Mono); image.fill(0); if(!this->isFullScreen() && !this->isMaximized()) { image.setPixel(0, 0, 1); image.setPixel(1, 0, 1); image.setPixel(2, 0, 1); image.setPixel(3, 0, 1); image.setPixel(0, 1, 1); image.setPixel(1, 1, 1); image.setPixel(0, 2, 1); image.setPixel(0, 3, 1); image.setPixel(width() - 4, 0, 1); image.setPixel(width() - 3, 0, 1); image.setPixel(width() - 2, 0, 1); image.setPixel(width() - 1, 0, 1); image.setPixel(width() - 2, 1, 1); image.setPixel(width() - 1, 1, 1); image.setPixel(width() - 1, 2, 1); image.setPixel(width() - 1, 3, 1); image.setPixel(0, height() - 4, 1); image.setPixel(0, height() - 3, 1); image.setPixel(0, height() - 2, 1); image.setPixel(1, height() - 2, 1); image.setPixel(0, height() - 1, 1); image.setPixel(1, height() - 1, 1); image.setPixel(2, height() - 1, 1); image.setPixel(3, height() - 1, 1); image.setPixel(width() - 1, height() - 4, 1); image.setPixel(width() - 1, height() - 3, 1); image.setPixel(width() - 2, height() - 2, 1); image.setPixel(width() - 1, height() - 2, 1); image.setPixel(width() - 4, height() - 1, 1); image.setPixel(width() - 3, height() - 1, 1); image.setPixel(width() - 2, height() - 1, 1); image.setPixel(width() - 1, height() - 1, 1); } this->setMask(QPixmap::fromImage(image)); }