우리는 Mac OSX Yosemite 반투명 효과를 사용하여 QMainWindow를 만들려고합니다. 우리는 PyQt를 사용하고 있지만 문제는 Qt 문제입니다. 지금까지 시도한 바에 따르면 항상 투명하거나 완전하게 불투명합니다 (일반 창처럼). Qt.WA_TranslucentBackground를 켜면 창 배경이 완전히 투명 해집니다.
또한 QGraphicsView가 표시되면 스크롤 할 때 흔적이 남습니다. 또한 마우스 입력은 투명 파트를 "통과"합니다. 그래픽보기의 투명한 부분을 클릭하면 그 뒤에있는 창에 클릭으로 등록됩니다. 사용자 정의 배경색으로 스타일 시트를 설정하면 효과가 없습니다. 이 기능을 끄면 윈도우가 불투명하게 유지됩니다. 그런 다음 스타일 시트를 사용하여 배경색을 변경할 수 있지만 여전히 불투명합니다.
WA_FramelessWindowHint를 켜고 끄는 것이 아무것도 수정하지 않는 것 같습니다. setAutoFillBackground()도 마찬가지입니다. 요세미티 반투명 효과로 창문을 만드는 방법을 알고 있습니까?Qt를 사용하여 OS X Yosemite 반투명 효과 만들기
다음은이를 테스트 할 수있는 샘플 파이썬 프로그램입니다 : -
# Attempt at Mac OSX Translucency (example code)
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
Qt = QtCore.Qt
class ExampleMainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.testWidget = QtWidgets.QLabel('Test label, which should be transparent')
# Make sure the testWidget is transparent
self.testWidget.setStyleSheet('background: transparent')
self.testWidget.setAttribute(Qt.WA_TranslucentBackground, True)
self.testWidget.setAutoFillBackground(True)
self.setStyleSheet('background: rgba(255, 255, 255, 0.8)')
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.setAutoFillBackground(True)
#self.setWindowFlags(Qt.FramelessWindowHint) # Doesn't seem to help
self.setCentralWidget(self.testWidget)
def main():
global app, exWindow
app = QtWidgets.QApplication(sys.argv)
exWindow = ExampleMainWindow()
exWindow.show()
exitcodesys = app.exec_()
app.deleteLater()
sys.exit(exitcodesys)
if __name__ == '__main__': main()
코드는 때로는 천 단어 정도의 가치가 있습니다. – lpapp
게시글에 코드를 삽입하는 방법을 모르므로 여기는 pastie입니다. https://bpaste.net/show/b0fbe94e90ce – Meorge
코드 서식 지정에 대한 유용한 정보 : http://stackoverflow.com/ 도움말/서식 지정. –