我目前有一个ImageView显示Dicom图像,但我不希望侧面的直方图。并尽可能将这两个按钮移动到另一个地方。我该怎么做?
ImageView的特殊之处在于你得到了直方图。另一种显示图像的方法是将ImageItem添加到基本绘图中并隐藏轴。以这种方式解决问题可以让您很好地控制应用程序显示的内容。
这是一个代码示例:
from PyQt4 import QtGui, QtCore
import pyqtgraph as pg
import numpy as np
win = pg.GraphicsWindow()
plot = win.addPlot()
imagedata = np.random.random((256,256))
ii = pg.ImageItem(imagedata)
plot.addItem(ii)
plot.hideAxis('left')
plot.hideAxis('bottom')
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
一个hacky方法的开始是在你的ImageView上调用ui.histogram.hide()
。像这样的东西
from PyQt4 import QtCore, QtGui
import pyqtgraph as pg
import numpy as np
app = QtGui.QApplication([])
win = QtGui.QMainWindow()
imv = pg.ImageView()
win.setCentralWidget(imv)
win.show()
imagedata = np.random.random((256,256))
imv.setImage(imagedata)
imv.ui.histogram.hide()
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
我知道现在已经很晚了,但是对于想要在未来想出一个想象而不是一个图像项目的人来说,这是有用的:
假设你有一个图像视图标记imv和一个布尔值show_histogram,你可以用以下代码切换显示直方图(及其下面的两个按钮)。
if show_histogram:
imv.ui.histogram.show()
imv.ui.roiBtn.show()
imv.ui.menuBtn.show()
else:
imv.ui.histogram.hide()
imv.ui.roiBtn.hide()
imv.ui.menuBtn.hide()
这是一个没有直方图的ImageItem。也许这就是你要找的东西。
import pyqtgraph as pg
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
imageWidget = pg.GraphicsLayoutWidget()
vb = imageWidget.addViewBox(row=1, col=1)
img = pg.ImageItem()
vb.addItem(img)
vb.setAspectLocked(True)