python-在matplotlib的工具栏中添加项目
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-在matplotlib的工具栏中添加项目,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3359字,纯文字阅读大概需要5分钟。
内容图文
![python-在matplotlib的工具栏中添加项目](/upload/InfoBanner/zyjiaocheng/690/3ce863646efc488b81930eb632be5e7f.jpg)
我使用PyQt在QMainWindow中创建了matplotlib的图形,并且尝试在代码中向matplotlib的工具栏添加按钮.这是我创建的NavigationToolbar:
我使用addWidget方法添加了这些按钮.但是,我需要创建一个Icon并将其放在工具栏上.这是我的代码的一部分:
class A(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.mainWidget = QWidget()
self.setCentralWidget(self.mainWidget)
layout = QVBoxLayout()
self.mainWidget.setLayout(layout)
self.figure_canvas = FigureCanvas(Figure())
layout.addWidget(self.figure_canvas, 10)
self.axes = self.figure_canvas.figure.add_subplot(111)
self.navigation_toolbar = NavigationToolbar2(self.figure_canvas, self)
self.addToolBar(Qt.TopToolBarArea, self.navigation_toolbar)
self.btn_selection_tool3 = QPushButton(, "Connect")
self.navigation_toolbar.addWidget(self.btn_selection_tool3)
self.btn_selection_tool2 = QPushButton()
self.navigation_toolbar.addWidget(self.btn_selection_tool2)
self.btn_showgrid = QPushButton("Show Grid")
self.navigation_toolbar.addWidget(self.btn_showgrid)
self.btn_hidegrid = QPushButton("Hide Grid")
self.navigation_toolbar.addWidget(self.btn_hidegrid)
app = QApplication(sys.argv)
window = A()
window.show()
sys.exit(app.exec_())
我看到了一些代码和问题,发现了,但是我无法完成我所需要的.这些是我阅读的链接:
dale lane – customize navigation toolbar
这些链接仅告诉我如何删除其中一些链接,其中一个链接可以与wx一起使用.
如何不使用QPushbutton或addWidget方法在工具栏中添加这些按钮?希望你能帮我
——编辑——
基于@three_pineapples注释,我尝试将此类添加到我的代码中:
class MyToolbar(NavigationToolbar2):
def __init__(self):
NavigationToolbar2.__init__(self)
self.iconDir = os.path.join(os.path.dirname(os.path.abspath(__file__)),
"..", "images", "icons", "")
self.a = self.addAction(QIcon(iconDir + "BYE2.ico"),
"Bye", self.bye)
self.a.setToolTip("GoodBye")
def bye(self):
print "See you next time")
我实例化了:
self.navigation_toolbar = MyToolbar(),而不是:
self.navigation_toolbar = NavigationToolbar2(self.figure_canvas,self)
但是,我收到此错误:
TypeError:__init __()至少接受3个参数(给定1个)
我尝试添加* args和kwargs,但是我不知道我在这里缺少什么.
这是向matplotlib工具栏添加按钮的方法吗?希望您能够帮助我.
解决方法:
我已经解决了问题.我找到了以下代码:
Matplotlib/Tkinter – customizing toolbar tooltips
因此,我创建了一个子类,并按链接中的说明进行添加.这是代码:
class MyToolbar(NavigationToolbar2):
def __init__(self, figure_canvas, parent= None):
self.toolitems = (('Home', 'Lorem ipsum dolor sit amet', 'home', 'home'),
('Back', 'consectetuer adipiscing elit', 'back', 'back'),
('Forward', 'sed diam nonummy nibh euismod', 'forward', 'forward'),
(None, None, None, None),
('Pan', 'tincidunt ut laoreet', 'move', 'pan'),
('Zoom', 'dolore magna aliquam', 'zoom_to_rect', 'zoom'),
(None, None, None, None),
('Subplots', 'putamus parum claram', 'subplots', 'configure_subplots'),
('Save', 'sollemnes in futurum', 'filesave', 'save_figure'),
('Port', 'Select', "select", 'select_tool'),
)
NavigationToolbar2.__init__(self, figure_canvas, parent= None)
def select_tool(self):
print "You clicked the selection tool"
然后,您可以通过编写以下代码添加此工具栏:
self.navigation_toolbar = MyToolbar(self.figure_canvas, self)
self.navigation_toolbar.update()
如果只想让自己的按钮使用,则必须从self.toolitems中删除所有其他项.例如:
self.toolitems = (
('Port', 'Select', "select", 'select_tool'),
)
这样,您只会在NavigationToolbar中看到自己的按钮
希望这可以帮助.
内容总结
以上是互联网集市为您收集整理的python-在matplotlib的工具栏中添加项目全部内容,希望文章能够帮你解决python-在matplotlib的工具栏中添加项目所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。