Skip to content
TI_Eugene edited this page Sep 22, 2022 · 1 revision

Now

  • Chart QScrollView ⇒ QCP zoom/range
  • Try Qwt
  • QGriLayout or + splitters
  • Google:
    • QTableWidget: scroll column content
      • setWigetCell(QScrollArea)
    • QGridLayoyt + splitter
    • QGridLayout + frozen top/bottom/left:
      • QGraphicsAnchorLayout

Zoom

reSize

  • ChartArea: QScrollArea
  • ChartSizes: fixed
  • Axis ranges: fixed, full
  • ⊕ Simple
  • ⊖ Memory leak:
    • x5 + x5 = +30MB RAM
    • x10 + x10 = +50MB RAM

Y:

  • ca.resize: c.resize
  • zoom: c.resize, scroller update
  • scroll: auto

X:

  • ca.resize: scroller update
  • zoom: c.resize, scroller update
  • scroll: auto

X-Scroller:

  • Range + PageStep = QCP width
  • Page = Col1
  • Range = 0..(QCP-Col1)

reRange:

  • ChartArea: QWidget + QHBox (QCP + V-scroller)
  • Chart sizes: undefined, auto
  • Axis ranges: dynamic, in natural units
  • ⊕: Memory unassuming
  • ⊖: complex

Y:

  • c.resize: scroller update
    • range: nothing to do
    • scroller:
      • page: height()
      • size: page × zoom
      • ptr: recalc
  • zoom: [range scale,] scroller update
    • range:
      • size: Ymin..Ymax
      • current: size / zoom
      • start: by scroller.ptr
    • scroller:
      • page: height() (no changes)
      • size: page × zoom
      • ptr: recalc
  • scroll: range move

Main idea: 1 scroller step == 1 px

  • scroller исчисляется в px

X:

  • c.resize: range update + scroller update
  • zoom: range scale, scroller update
    • range:
      • size: Xmin..Xmax
      • current: width() / (size × xppu × zoom)
      • ptr: on scroller
    • scroller:
      • size: Xsize * xppu * zoom
      • page:
      • ptr:
  • scroll: range move

Main idea: fixed px/sample

Clone this wiki locally