PyQt를 사용하지 않은 경우 창 뒤에있는 화면을 캡처하여 의사 투명 창을 만들고 싶습니다. 다음 코드는 스크린 샷을 찍습니다 :PyQT를 사용한 가상 투명도
#!/usr/bin/python3
from PyQt4.QtGui import *
app = QApplication([])
widget = QWidget()
widget.setLayout(QVBoxLayout())
label = QLabel()
widget.layout().addWidget(label)
def shoot():
geometry = widget.geometry()
widget.hide()
label.setPixmap(QPixmap.grabWindow(QApplication.desktop().winId(), x = geometry.x(), y = geometry.y(), height = geometry.height(), width = geometry.width())
widget.show()
widget.layout().addWidget(QPushButton('Screenshot', clicked = shoot))
widget.show()
app.exec_()
그러나 위젯이 있지만 화면 자체에 창이 나타납니다. 어떻게 이것을 피할 수 있습니까?
'widget.hide()'와 라벨의 Pixmap을 설정하는 사이에 ('time.sleep()') 잠깐 기다려 주시겠습니까? 스크린 샷을 찍을 때 위젯이 아직 숨겨져 있지 않은 것 같습니다. 또는'widget.setAttribute (Qt.WA_TranslucentBackground, True)'를 사용하여 실제 투명성을 시도 했습니까? – Junuxx
감사합니다. 실제로 위젯을 추가 한 후 0.3 초의 수면을 추가하면 작동합니다(). 그러나 얼마나 오래 기다릴 수 있습니까? 숨기기 이벤트가 끝날 때까지 기다릴 수있는 방법이 있습니까? –