Gần đây tôi bắt đầu khám phá việc phát triển giao diện người dùng trong Qt Designer và chỉnh sửa chúng thông qua PyQt. Mọi thứ diễn ra khá mượt mà, nhưng hiện tại tôi đang cố gắng giải quyết vấn đề sau:Thanh công cụ điều hướng Matplotlib: xóa "Chỉnh sửa đường cong và thông số trục"
Tôi đã chèn một tiện ích MatplotLib qua Qt Designer và quản lý để vẽ các thanh ngang khá tốt bằng barh. Tiếp theo tôi đã cố gắng và quản lý thành công để chèn một NavigationToolBar chức năng thông qua matplotlib.backends.backend_qt4agg.NavigationToolbar2QT
Sau đó, theo chủ đề này (và những cái tương tự) tôi đã chỉnh sửa nút nào tôi muốn hiển thị trên thanh công cụ ... How to modify the navigation toolbar easily in a matplotlib figure window?
Tính năng này hoạt động tốt cho mọi nút ngoại trừ nút cuối cùng, với bản vẽ hộp kiểm mô tả "Chỉnh sửa đường cong và thông số trục". Trong trường hợp cụ thể này, tôi thực sự muốn loại bỏ nút này, bởi vì nó liên tục thay đổi kích thước cốt truyện khi di chuyển chuột và trong trường hợp này tôi không cần nút này.
tôi đã không tìm thấy bất kỳ chủ đề được nêu ra thảo luận nút thanh công cụ đặc biệt này (chỉ này một matplotlib: Qt4Agg toolbar's irritating bug)
Các mã được sử dụng để chèn các thanh công cụ và hiện chỉnh sửa nút trông giống như sau:
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT
class currentUI(QtGui.QWidget):
def __init__(self):
super(currentUI,self).__init__()
(...)
uic.loadUi('portfolioManager.ui',self)
self.initUI()
(...)
def initUI(self):
self.setWidgetsPropertiesAndActions()
(...)
def setWidgetsPropertiesAndActions(self):
(...)
self.navi_toolbar=NavigationToolbar(self.mplwidgetExposures, self)
self.LayoutPlot.addWidget(self.navi_toolbar)
(...)
class NavigationToolbar(NavigationToolbar2QT):
toolitems = [t for t in NavigationToolbar2QT.toolitems if
t[0] in ('Home','Pan', 'Zoom', 'Save','Subplots')]
Việc này đã nhúng thành công thanh công cụ, nhưng nút "chỉnh sửa" vẫn còn.
Cảm ơn rất nhiều vì mọi thông tin chi tiết. Trân
Cảm ơn rất nhiều vì thông tin chi tiết của bạn! Theo ý tưởng của bạn, tôi đã tạo ra một hàm trong lớp con NavigationToolbar để loại bỏ các hành động và làm việc tuyệt vời. Chúc mừng! –