【发布时间】:2016-10-30 03:40:15
【问题描述】:
我目前有一个 ImageView 显示 Dicom 图像,但我不希望该直方图出现在旁边。并且有可能,将这两个按钮移动到另一个地方。 我怎样才能做到这一点?
【问题讨论】:
标签: python pyqt dicom pyqtgraph
我目前有一个 ImageView 显示 Dicom 图像,但我不希望该直方图出现在旁边。并且有可能,将这两个按钮移动到另一个地方。 我怎样才能做到这一点?
【问题讨论】:
标签: python pyqt dicom pyqtgraph
我知道现在已经很晚了,但是对于任何想要在未来解决这个问题但想要一个 imageview 而不是 imageitem 的人:
假设您有一个带有 imageview 标签的 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()
【讨论】:
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_()
【讨论】:
这是一个侧面没有直方图的 ImageItem。也许这就是你要找的。p>
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)
【讨论】: