背景: 我有一个python程序正在被许多工程师使用。它表示某些被测设备的状态。
我正在使用QScrollArea()来包含一个包含大量信息的QGridLayout。
bit_grid = QtGui.QGridLayout()
...
scroll = QtGui.QScrollArea()
info = QtGui.QWidget()
info.setLayout(bit_grid)
scroll.setWidget(info)
GUI上有很多状态指示器,因此滚动条用于确保GUI适合一个屏幕。
当工程师想要描述一个失败时,他们现在正在做的是采取多个屏幕截图,一个用于ScrollArea的每个新显示区域。然后将它们缝合在一起制作一个大图像。
有没有办法生成可以在ScrollArea中显示的区域的png(或img格式)?
答案 0 :(得分:1)
试试这个:
pixmap = QtGui.QPixmap.grabWidget(scroll)
pixmap.save('path/to/file.png', None, 100)
此代码段会拍摄scrollArea内的任何内容,并将其作为png图像保存到path/to/
<{1}}
答案 1 :(得分:1)
好的解决了。
widget = self.scroll.widget()
pixmap = QtGui.QPixmap(widget.size())
widget.render(pixmap)
pixmap.save(filename, 'PNG', 100)
关键是抓住滚动的小部件,然后可以(虚拟地)渲染。然后可以保存得到的像素图。