Wenn ich denn durch pyautogui oder PIL erzeugten Screenshot des gewünschten Abschnitts in pyqt in einem Label anzeigen will, bekomme ich folgen den Fehler.
Was wäre sonst die Lösung meines Problems, wenn keine Umwandlung nötig ist?
Code: Alles auswählen
from PyQt5 import QtCore, QtGui, QtWidgets
import pyautogui
from PIL import ImageGrab
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(822, 722)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setMaximumSize(QtCore.QSize(250, 16777215))
self.listWidget.setObjectName("listWidget")
self.gridLayout.addWidget(self.listWidget, 0, 0, 1, 1)
self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 546, 583))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.gridLayout_2 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)
self.gridLayout_2.setObjectName("gridLayout_2")
self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents)
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap("../../../JULE/res/JULE.ico"))
self.label.setScaledContents(False)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.gridLayout.addWidget(self.scrollArea, 0, 1, 1, 1)
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setObjectName("groupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.lineEdit = QtWidgets.QLineEdit(self.groupBox)
self.lineEdit.setObjectName("lineEdit")
self.gridLayout_3.addWidget(self.lineEdit, 1, 0, 1, 1)
self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox)
self.lineEdit_2.setObjectName("lineEdit_2")
self.gridLayout_3.addWidget(self.lineEdit_2, 1, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(self.groupBox)
self.label_2.setObjectName("label_2")
self.gridLayout_3.addWidget(self.label_2, 0, 0, 1, 1)
self.label_3 = QtWidgets.QLabel(self.groupBox)
self.label_3.setObjectName("label_3")
self.gridLayout_3.addWidget(self.label_3, 0, 1, 1, 1)
self.gridLayout.addWidget(self.groupBox, 1, 0, 1, 2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 822, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.bild_anzeigen()
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.groupBox.setTitle(_translate("MainWindow", "GroupBox"))
self.label_2.setText(_translate("MainWindow", "TextLabel"))
self.label_3.setText(_translate("MainWindow", "TextLabel"))
def bild_anzeigen(self):
bildausschnitt = pyautogui.screenshot(region = (100, 100, 300, 300))
print(bildausschnitt)
bildausschnitt2 = ImageGrab.grab(bbox =(100, 100, 300, 300))
print(bildausschnitt2)
self.label.setPixmap(QtGui.QPixmap(bildausschnitt))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
<PIL.Image.Image image mode=RGB size=300x300 at 0x1B7A7D04910>
<PIL.Image.Image image mode=RGB size=200x200 at 0x1B7A7D04940>
Traceback (most recent call last):
File "C:\Users\cR0N0s\OneDrive\Save\Python\Autobot\ScreenShot.py", line 100, in <module>
ui.setupUi(MainWindow)
File "C:\Users\cR0N0s\OneDrive\Save\Python\Autobot\ScreenShot.py", line 74, in setupUi
self.bild_anzeigen()
File "C:\Users\cR0N0s\OneDrive\Save\Python\Autobot\ScreenShot.py", line 92, in bild_anzeigen
self.label.setPixmap(QtGui.QPixmap(bildausschnitt))
TypeError: QPixmap(): argument 1 has unexpected type 'Image'