Я пытаюсь захватить область экрана в области моего приложения pyqt4 полупрозрачной, но я хочу исключить виджет "betwn = QPushButton ('test')" в захвате, я пытаюсь скрыть виджет, используяhide () вот так: betwn.hide (), если быть исключенным до захвата, но не работает, то "betwn", даже скрытый в любом случае, будет захвачен.
Вот мой код PyQt4:
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from datetime import datetime
app = QApplication(sys.argv)
widget = QWidget()
widget.setLayout(QVBoxLayout())
widget.setAttribute(Qt.WA_TranslucentBackground)
label = QLabel()
widget.layout().addWidget(label)
def capture():
p = QPixmap.grabWindow(QApplication.desktop().winId(),widget.geometry().x(),widget.geometry().y(),widget.geometry().width(),widget.geometry().height())
label.setPixmap(p)
def shoot():
betwn.hide()
capture()
betwn.show()
button = QPushButton('take screenshot', clicked=shoot)
betwn = QPushButton('test')
widget.layout().addWidget(button)
widget.layout().addWidget(betwn)
widget.show()
app.exec_()
Вот мой код PySide:
import sys
from PySide.QtGui import *
from PySide.QtCore import *
from datetime import datetime
app = QApplication(sys.argv)
widget = QWidget()
widget.setLayout(QVBoxLayout())
widget.setAttribute(Qt.WA_TranslucentBackground)
label = QLabel()
widget.layout().addWidget(label)
def capture():
p = QPixmap.grabWindow(QApplication.desktop().winId(),widget.geometry().x(),widget.geometry().y(),widget.geometry().width(),widget.geometry().height())
label.setPixmap(p)
def shoot():
betwn.hide()
capture()
betwn.show()
button = QPushButton('take screenshot', clicked=shoot)
betwn = QPushButton('test')
widget.layout().addWidget(button)
widget.layout().addWidget(betwn)
widget.show()
app.exec_()
Как мне сделать исключение виджета "betwn = QPushButton ('test')" в захвате?или Если вы знаете другой способ захвата области рабочего стола, используя окно без захвата окна, используя координаты окна, а также ширину и высоту?
Примерно так:
QPixmap.grabWindow(QApplication.desktop().winId(),widget.geometry().x(),widget.geometry().y(),widget.geometry().width(),widget.geometry().height());