Как сделать полностью прозрачное приложение, но элементы на нем не прозрачные?
Как сделать полностью прозрачное приложение, но элементы на нем не прозрачные?
import QtQuick 6.3
import QtQuick.Window 6.3
import AssistentYuna
Window {
width: mainScreen.width
height: mainScreen.height
opacity: 0.4
visible: true
color: "#ffffff"
maximumHeight: 350
maximumWidth: 250
minimumHeight: 350
minimumWidth: 250
title: "AssistentYuna"
Screen01 {
id: mainScreen
opacity: 1
color: "#c2c2c2"
}
}
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from PyQt5.Qt import *
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setObjectName('main_window')
self.setWindowFlags(self.windowFlags() |
Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.setStyleSheet(Stylesheet)
self.initUi()
def initUi(self):
# Важно!: this widget is used as background and rounded corners.
self.widget = QWidget(self)
self.widget.setObjectName('Custom_Widget')
layout = QVBoxLayout(self)
layout.addWidget(self.widget)
# Add user interface to widget
label = QLabel('Hello, world!')
label.setObjectName('label')
layout = QGridLayout(self.widget)
layout.addItem(QSpacerItem(
40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum), 0, 0)
layout.addWidget(QPushButton(
'r', self, clicked=self.close, objectName='closeButton'), 0, 1)
layout.addWidget(label, 2, 0, 5, 2, alignment=Qt.AlignCenter)
def sizeHint(self):
return QSize(300, 380)
Stylesheet = """
#Custom_Widget {
background: transparent;
border-radius: 20px;
opacity: 100;
border: 4px solid #91091E;
}
#closeButton {
min-width: 36px;
min-height: 36px;
font-family: "Webdings";
qproperty-text: "r";
border-radius: 10px;
}
#closeButton:hover {
color: #ccc;
background: red;
}
#label {
color: #91091E;
font-size: 25pt;
}
"""
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = MainWindow() #
w.show()
sys.exit(app.exec_())
