- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 pyqt 设计器创建了一个最小的示例,该示例在按下按钮时更改标签的文本,并且应该通过标签在窗口中显示屏幕截图。
不幸的是,该示例在尝试在标签中显示屏幕截图时崩溃了。
from PIL.ImageQt import ImageQt
from PyQt5 import QtCore, QtGui, QtWidgets
from pyscreenshot import grab
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(503, 382)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(70, 30, 75, 23))
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(80, 100, 47, 14))
self.label.setObjectName("label")
self.retranslateUi(Form)
self.pushButton.clicked.connect(lambda: self.take_screenshot())
QtCore.QMetaObject.connectSlotsByName(Form)
def take_screenshot(self):
self.label.setText("1?")
screenshot = grab()
self.label.setText("2")
qim = ImageQt(screenshot)
pix = QtGui.QPixmap.fromImage(qim)
self.label.setText("3")
self.label.setPixmap(pix)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.pushButton.setText(_translate("Form", "PushButton"))
self.label.setText(_translate("Form", "TextLabel"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
最佳答案
“screenshot”与“qimg”共享相同的内存,并且作为屏幕截图,它是一个局部变量,当消除时,关联的内存也会被消除,因此当尝试访问信息时,QLabel 的 QPbelmap 将生成一个段错误。。解决方案是制作一个副本,这样它们就不会共享相同的内存
def take_screenshot(self):
screenshot = grab()
qim = ImageQt(screenshot)<b>.copy()</b>
pix = QtGui.QPixmap.fromImage(qim)
self.label.setPixmap(pix)
self.label.adjustSize()
关于python - 尝试在标签中显示图像时 setPixmap 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61354609/
很简单,我试图在一个简单的 Qt GUI 应用程序中显示图像。 我有这个代码: ui->label_2->setVisible(true); QPixmap supremect(":/images/s
我使用 pyqt 设计器创建了一个最小的示例,该示例在按下按钮时更改标签的文本,并且应该通过标签在窗口中显示屏幕截图。 不幸的是,该示例在尝试在标签中显示屏幕截图时崩溃了。 from PIL.Imag
我使用 pyqt 设计器创建了一个最小的示例,该示例在按下按钮时更改标签的文本,并且应该通过标签在窗口中显示屏幕截图。 不幸的是,该示例在尝试在标签中显示屏幕截图时崩溃了。 from PIL.Imag
我有一个 QLabel,其大小策略为 QSizePolicy::Expanding,我想在其中显示带有 QLabel::setPixmap 的图像。主窗口不应调整大小,这就是我在设置 QLabel 的
我正在编写一个简单的程序,在按下按钮时显示图像。我是 Qt 的新手,我无法确定我的问题出在哪里。 class ImageSwitcher : public QWidget { Q_OBJECT
我一直在追踪一个归结为这个的错误 - 如果您在滚动区域内显示图像标签,如果 QLabel::setPixmap() 在 QScrollArea::setWidget() 之后被调用。 这个例子说明了问
我有一个程序可以使用套接字相互发送和接收图像。服务器使用'image.tostring()'发送图像数据,客户端接收它并使用'Image.fromstring'将其转换回图像,然后使用'ImageQt
我是一名优秀的程序员,十分优秀!