python matplotlib and PyQT for multi-tab plotting - navigation

前端 未结 1 599
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-06 11:17

I\'ve created a qt app that can be used to display matplotlib figures in multiple tabs. Now I\'m trying to get the standard matplotlib navigation toolbar to work for all th

相关标签:
1条回答
  • 2021-01-06 11:45

    I think you can create toolbar for every canvas and show/hide them when tabs.currentTab changed:

    class MultiTabNavTool(qt.QWidget):
    
        def __init__(self, canvases, tabs, parent=None):
            qt.QWidget.__init__(self, parent)
            self.canvases = canvases
            self.tabs = tabs
            self.toolbars = [NavigationToolbar(canvas, parent) for canvas in self.canvases]
            vbox = qt.QVBoxLayout()
            for toolbar in self.toolbars:
                vbox.addWidget(toolbar)
            self.setLayout(vbox)
            self.switch_toolbar()
            self.tabs.currentChanged.connect(self.switch_toolbar)
    
        def switch_toolbar(self):
            for toolbar in self.toolbars:
                toolbar.setVisible(False)
            self.toolbars[self.tabs.currentIndex()].setVisible(True)
    
    0 讨论(0)
提交回复
热议问题