gpt4 book ai didi

python - PyQt 对话框中的 matplotlib 十字光标不显示

转载 作者:行者123 更新时间:2023-11-30 22:58:03 28 4
gpt4 key购买 nike

我希望在我的 matplotlib 窗口中的光标处有一个十字准线。这在 matplotlib gallery 中给出的示例中得到了解决。 。但不幸的是,如果我在 Qt 对话框窗口 (QDialog) 中有 matplotlib 小部件,它就不起作用。

这是我的代码示例,我想在其中实例化 matplotlib.widgets.Cursor 对象,但没有显示任何内容。

import sys
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt
from matplotlib.widgets import Cursor

class Window(QtGui.QDialog):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.figure = plt.figure(facecolor='white')
self.canvas = FigureCanvas(self.figure)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.canvas)
self.setLayout(layout)

''' plot some random stuff '''
ax = self.figure.add_subplot(111)
self.ax = ax
ax.plot([1,2])

# Set cursor
Cursor(self.ax, useblit=False, color='red', linewidth=1)
self.canvas.draw()

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Window()
main.show()
sys.exit(app.exec_())

有人可以帮忙吗?

最佳答案

我已按如下方式修改了您的代码,它可以在我的计算机上运行。希望对您有所帮助。

import sys
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
import matplotlib.pyplot as plt
from matplotlib.widgets import Cursor

class Window(QtGui.QDialog):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.figure = plt.figure(facecolor='white')
self.canvas = FigureCanvas(self.figure)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.canvas)
self.setLayout(layout)

''' plot some random stuff '''
ax = self.figure.add_subplot(111)
self.ax = ax
ax.plot([1,2])
# Set cursor
cursor = Cursor(self.ax, useblit=False, color='red', linewidth=1)

############## The added part: #############
def onclick(event):
cursor.onmove(event)
self.canvas.mpl_connect('button_press_event', onclick)
############################################
self.canvas.draw()

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Window()
main.show()
sys.exit(app.exec_())

关于python - PyQt 对话框中的 matplotlib 十字光标不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36350771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com