arguments did not match any overloaded call: QImage(): too many arguments QImage(QSize, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(int, int, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(bytes, int, int, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(PyQt5.sip.voidptr, int, int, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(bytes, int, int, int, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(PyQt5.sip.voidptr, int, int, int, QImage.Format): argument 1 has unexpected type 'memoryview' QImage(List[str]): argument 1 has unexpected type 'memoryview' QImage(str, format: str = None): argument 1 has unexpected type 'memoryview' QImage(QImage): argument 1 has unexpected type 'memoryview' QImage(Any): too many arguments 进程已结束,退出代码为 -1073740791 (0xC0000409)
时间: 2024-03-14 10:46:34 浏览: 315
这个报错提示是因为`QImage`函数中的第一个参数类型不正确。可能是您在使用`QImage`函数时传递的图像数据类型不正确,应该是`bytes`类型,而不是`memoryview`类型。可以将`memoryview`类型转换为`bytes`类型后再传递给`QImage`函数,例如:
```python
def deal_one_pic(self, image):
# 将图像转换为QPixmap格式
height, width, channel = image.shape
bytesPerLine = 3 * width
qImg = QImage(image.data.tobytes(), width, height, bytesPerLine, QImage.Format_RGB888).rgbSwapped()
pixmap = QPixmap(qImg)
return pixmap
```
上述代码中,我们使用`image.data.tobytes()`将`memoryview`类型的图像数据转换为`bytes`类型,然后将其传递给`QImage`函数。
相关问题
依据报如下错误: audio_out = QAudioDeviceInfo(devtxt) TypeError: arguments did not match any overloaded call: QAudioDeviceInfo(): too many arguments QAudioDeviceInfo(QAudioDeviceInfo): argument 1 has unexpected type 'str'
这个错误的原因是你在调用 QAudioDeviceInfo(devtxt) 的时候传递了一个字符串类型的参数,而实际上它需要的参数类型是 QAudioDeviceInfo 类型。你可以使用 QAudioDeviceInfo::availableDevices(QAudio::Mode mode) 方法来获取可用的音频设备列表,并从中选择一个合适的设备来创建 QAudioDeviceInfo 对象。具体的实现方式可以参考 Qt 官方文档以及相关的例子。
arguments did not match any overloaded call: scaled(self, width: int, height: int, aspectRatioMode: Qt.AspectRatioMode = Qt.IgnoreAspectRatio, transformMode: Qt.TransformationMode = Qt.FastTransformation): argument 3 has unexpected type 'int' scaled(self, size: QSize, aspectRatioMode: Qt.AspectRatioMode = Qt.IgnoreAspectRatio, transformMode: Qt.TransformationMode = Qt.FastTransformation): argument 1 has unexpected type 'int'
这个错误是因为 `scaled()` 方法的参数类型不匹配。在 PySide/PyQt5 中,`scaled()` 方法有两种重载形式:
- `scaled(width, height[, aspectRatioMode=Qt.IgnoreAspectRatio, transformMode=Qt.FastTransformation])`
- `scaled(size[, aspectRatioMode=Qt.IgnoreAspectRatio, transformMode=Qt.FastTransformation])`
其中,第一个重载形式中的 `width` 和 `height` 参数应该是整数类型,而第二个重载形式中的 `size` 参数应该是 `QSize` 类型。
如果你想要缩放一个 `QPixmap` 或 `QImage` 对象,你可以将大小参数包装成 `QSize` 对象,如下所示:
``` python
from PyQt5.QtGui import QPixmap, QImage
from PyQt5.QtCore import Qt, QSize
# 使用 QPixmap 对象进行图像缩放
pixmap = QPixmap('image.png')
scaled_pixmap = pixmap.scaled(QSize(100, 100), Qt.KeepAspectRatio, Qt.SmoothTransformation)
# 使用 QImage 对象进行图像缩放
image = QImage('image.png')
scaled_image = image.scaled(QSize(100, 100), Qt.KeepAspectRatio, Qt.SmoothTransformation)
```
请注意,在 `scaled()` 方法中,`aspectRatioMode` 和 `transformMode` 参数都有默认值,因此你可以省略不必要的参数。
希望这可以帮助你解决问题。
阅读全文