Улучшить две шкалы, навигацию и формулы графиков
This commit is contained in:
@@ -11,7 +11,8 @@ except ImportError:
|
||||
from PySide2.QtWidgets import QScrollArea
|
||||
|
||||
NAVIGATION_HINT = ('Колесо и +/− — масштаб X; Ctrl + колесо и Ctrl + +/− — масштаб Y. '
|
||||
'ЛКМ на свободном поле — перемещение; ←/→ — перемещение по X; Home/End — начало/конец.')
|
||||
'ЛКМ — перемещение по X; Ctrl + ЛКМ — по Y; '
|
||||
'←/→ — перемещение по X; ↑/↓ — по Y; Home/End — начало/конец.')
|
||||
|
||||
|
||||
class PlotNavigation:
|
||||
@@ -29,6 +30,8 @@ class PlotNavigation:
|
||||
bool(modifiers & Qt.ControlModifier))
|
||||
elif key in (Qt.Key_Left, Qt.Key_Right) and not (modifiers & Qt.ControlModifier):
|
||||
self._navigation_pan(-.1 if key == Qt.Key_Left else .1)
|
||||
elif key in (Qt.Key_Up, Qt.Key_Down):
|
||||
self._navigation_pan_y(-.1 if key == Qt.Key_Up else .1)
|
||||
elif key in (Qt.Key_Home, Qt.Key_End):
|
||||
self._navigation_edge(key == Qt.Key_End)
|
||||
else:
|
||||
@@ -80,6 +83,12 @@ class ScrollPlotNavigation(PlotNavigation):
|
||||
bar.setValue(round(bar.value() + fraction * bar.pageStep()))
|
||||
self.navigation_panned()
|
||||
|
||||
def _navigation_pan_y(self, fraction):
|
||||
scroll = self.scroll_area()
|
||||
if scroll is not None:
|
||||
bar = scroll.verticalScrollBar()
|
||||
bar.setValue(round(bar.value() + fraction * bar.pageStep()))
|
||||
|
||||
def _navigation_edge(self, end):
|
||||
scroll = self.scroll_area()
|
||||
if scroll is not None:
|
||||
@@ -113,4 +122,3 @@ class ScrollPlotNavigation(PlotNavigation):
|
||||
self.move_pan(event)
|
||||
self._pan_position = None
|
||||
self.unsetCursor()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user