|
2 | 2 |
|
3 | 3 | []() |
4 | 4 | []() |
5 | | -[](https://dhruvan2006.github.io/QTradingView/) |
| 5 | +[](https://dhruvan2006.github.io/QTradingView/demo) |
6 | 6 | []() |
7 | 7 | []() |
8 | 8 |
|
9 | 9 | A **lightweight, high-performance charting library** built with **C++ and Qt**. Inspired by [TradingView's lightweight-charts](https://github.com/tradingview/lightweight-charts). |
10 | 10 |
|
11 | 11 | Built from scratch to deliver **interactive and scalable visualization** for financial data. |
12 | 12 |
|
13 | | -Try it live in your browser: [QTradingView Demo](https://dhruvan2006.github.io/QTradingView/) |
| 13 | +Try it live in your browser: [QTradingView Demo](https://dhruvan2006.github.io/QTradingView/demo) |
14 | 14 |
|
15 | 15 | <p align="center"> |
16 | 16 | <img src="screenshot.png" alt="QTradingView Demo" width="600"/> |
@@ -74,19 +74,22 @@ More detailed examples can be found in the `examples/` directory. |
74 | 74 | ## Demo |
75 | 75 |
|
76 | 76 | Check out the live demo built with **WebAssembly + Qt**: |
77 | | -[https://dhruvan2006.github.io/QTradingView/](https://dhruvan2006.github.io/QTradingView/) |
| 77 | +[https://dhruvan2006.github.io/QTradingView/demo](https://dhruvan2006.github.io/QTradingView/demo) |
78 | 78 |
|
79 | 79 | Interact with multi-pane candlestick charts directly in your browser. |
80 | 80 |
|
81 | | -## Architecture Overview |
| 81 | +# Architecture Overview |
82 | 82 |
|
83 | | -QTradingView follows a **pane centered architecture**, where the `Chart` acts as the root container that manages the `Viewport` and multiple `Pane` objects. |
84 | | -Each pane encapsulates its own **series** and **scale**, allowing independent rendering and data transformations. |
| 83 | +QTradingView uses a pane-based architecture inspired by TradingView. |
| 84 | +Each Chart owns multiple Pane objects, each rendering independent series (candlestick, line, etc.). |
| 85 | +
|
| 86 | +- **Chart** — top-level container managing layout and input. |
| 87 | +- **Pane** — isolated rendering unit with its own Y-scale. |
| 88 | +- **Series** — modular data renderer (e.g., CandleStickSeries, LineSeries). |
| 89 | +- **Viewport** — tracks zoom/pan state and coordinates. |
| 90 | +
|
| 91 | +This modular design allows partial redraws and efficient updates even with 10k+ data points. |
85 | 92 |
|
86 | | -This modular design enables: |
87 | | -- Efficient rendering of large datasets by updating only affected panes |
88 | | -- Independent control of scales (e.g., linear or logarithmic per pane) |
89 | | -- Easy extension with custom series or scale types |
90 | 93 | ```mermaid |
91 | 94 | classDiagram |
92 | 95 | %% ========================= |
|
0 commit comments