Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
1

Как обновить график после каждого изменения в файле с данными для графика

22.05.2020, 09:26. Просмотров 1698. Ответов 14

Привет! Такая проблема:
Есть файл в текстовом формате с данными,которые берутся в расчет для построения графика.Я запускаю код,открывается окно с графиком.И вот мой "тупик". Мне нужно, чтобы окно с графиком не закрывалось а перерисовывалось после определенного интервала времени.Знаю,что есть таймер в Qt, но я туп и не могу его применить.Подскажите,как 'без или с' решить проблему.
Часть данных для расчета:
Кликните здесь для просмотра всего текста
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,80,166800,SELL,
10:00:10,208.5,30,62550,SELL,
10:00:10,208.5,10,20850,SELL,
10:00:10,208.5,20,41700,SELL,
10:00:10,208.5,10,20850,SELL,
10:00:10,208.5,40,83400,SELL,
10:00:10,208.5,90,187650,SELL,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.68,140,292152,BUY ,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,20,41700,SELL,
10:00:10,208.5,100,208500,SELL ,
10:00:10,208.5,4,8340,SELL,
10:00:11,208.5,200,417000,SELL ,
10:00:11,208.5,200,417000,SELL ,
10:00:11,208.5,4268,8898780,SE LL,
10:00:11,208.5,1474,3073290,SE LL,
10:00:11,208.5,200,417000,SELL ,
10:00:11,208.5,200,417000,SELL ,
10:00:11,208.5,200,417000,SELL ,
10:00:11,208.5,14,29190,SELL,
10:00:11,208.5,10,20850,SELL,
10:00:11,208.5,1,2085,SELL,
10:00:11,208.45,70,145915,BUY,
10:00:11,208.26,3,6247.8,SELL,
10:00:11,208.26,55,114543,SELL ,
10:00:11,208.1,63,131103,SELL,
10:00:11,208.17,70,145719,BUY,
10:00:11,208.17,70,145719,BUY,
10:00:11,208.17,30,62451,BUY,
10:00:11,208.03,10,20803,SELL,
10:00:11,208.04,256,532582.4,S ELL,
10:00:11,208.08,175,364140,BUY ,
10:00:11,208.1,245,509845,BUY,
10:00:11,208.1,70,145670,BUY,
10:00:11,208.1,80,166480,BUY,
10:00:11,208.1,20,41620,BUY,
10:00:11,208.1,5,10405,BUY,
10:00:11,208.12,20,41624,SELL,
10:00:11,208.1,18,37458,SELL,
10:00:11,208.1,27,56187,SELL,
10:00:11,208.08,70,145656,BUY,
10:00:11,208.08,20,41616,BUY,
10:00:11,208.02,38,79047.6,SEL L,
10:00:11,208.08,10,20808,BUY,
10:00:11,208.08,10,20808,BUY,
10:00:11,208.08,10,20808,BUY,
10:00:11,208.01,10,20801,SELL,
10:00:11,208.01,29,60322.9,SEL L,
10:00:11,208.1,90,187290,BUY,
10:00:11,207.99,38,79036.2,SEL L,
10:00:11,208.1,10,20810,BUY,
10:00:11,208.08,20,41616,BUY,
10:00:11,208.08,20,41616,BUY,
10:00:11,208.08,10,20808,BUY,
10:00:11,208.12,2,4162.4,SELL,
10:00:11,208.1,8,16648,SELL,
10:00:11,208.12,10,20812,SELL,
10:00:11,208.12,10,20812,SELL,
10:00:11,208.13,10,20813,SELL,
10:00:11,208.13,9,18731.7,SELL ,
10:00:11,208.12,1,2081.2,SELL,
10:00:11,208.12,10,20812,SELL,
10:00:11,208.12,120,249744,SEL L,
10:00:11,208.12,18,37461.6,SEL L,
10:00:11,208.11,64,133190.4,SE LL,
10:00:11,208.1,2,4162,SELL,
10:00:11,208.1,16,33296,SELL,
10:00:11,208.48,40,83392,BUY,
10:00:11,208.48,40,83392,BUY,
10:00:11,208.49,70,145943,BUY,
10:00:11,208.49,64,133433.6,BU Y,
10:00:11,208.5,70,145950,BUY,
10:00:11,208.5,30,62550,BUY,
10:00:11,208.69,312,651112.8,B UY,
10:00:11,208.7,260,542620,BUY,
10:00:11,208.75,5,10437.5,BUY,
10:00:11,208.75,2,4175,BUY,
10:00:11,208.76,7,14613.2,BUY,
10:00:11,208.21,120,249852,SEL L,
10:00:12,208.3,40,83320,SELL,
10:00:12,208.29,362,754009.8,S ELL,
10:00:12,208.31,7,14581.7,SELL ,
10:00:12,208.27,100,208270,SEL L,
10:00:12,208.27,75,156202.5,BU Y,
10:00:12,208.28,125,260350,BUY ,
10:00:12,208.1,4,8324,SELL,
10:00:12,208.1,36,74916,SELL,
10:00:12,208.1,4,8324,SELL,
10:00:12,208.1,20,41620,SELL,
10:00:12,208.05,56,116508,SELL ,
10:00:12,208.05,10,20805,SELL,
10:00:12,208.05,10,20805,SELL,
10:00:12,208.05,43,89461.5,SEL L,
10:00:12,208.05,119,247579.5,S ELL,
10:00:12,207.96,10,20796,SELL,
10:00:12,208.45,130,270985,BUY ,
10:00:12,208.16,10,20816,BUY,
10:00:12,208.53,39,81326.7,BUY ,
10:00:12,208.65,1,2086.5,BUY,
10:00:12,208.57,48,100113.6,BU Y,
10:00:12,208.03,1,2080.3,SELL,
10:00:12,208.02,114,237142.8,S ELL,
10:00:12,208,5,10400,SELL,
10:00:12,207.97,482,1002415.4, SELL,
10:00:12,207.95,2444,5082298,S ELL,
10:00:12,207.9,40,83160,BUY,
10:00:12,207.9,10,20790,BUY,
10:00:12,207.9,110,228690,BUY,
10:00:12,207.9,539,1120581,BUY ,
10:00:12,207.9,25,51975,BUY,
10:00:12,207.9,27,56133,BUY,
10:00:12,207.9,10,20790,BUY,
10:00:12,207.9,174,361746,BUY,
10:00:12,207.9,10,20790,BUY,
10:00:12,207.9,10,20790,BUY,
10:00:12,207.9,235,488565,BUY,
10:00:12,207.9,174,361746,BUY,
10:00:12,207.9,172,357588,BUY,
10:00:12,207.81,20,41562,SELL,
10:00:12,207.9,10,20790,BUY,
10:00:12,207.9,101,209979,BUY,
10:00:12,208.45,3,6253.5,BUY,
10:00:12,208.11,20,41622,SELL,
10:00:12,208.1,38,79078,SELL,
10:00:12,208.1,142,295502,SELL ,
10:00:12,208.1,58,120698,SELL,
10:00:12,208.11,147,305921.7,B UY,
10:00:12,208.1,10,20810,SELL,
10:00:12,208.1,10,20810,SELL,
10:00:12,208.1,273,568113,SELL ,
10:00:12,208.37,60,125022,BUY,
10:00:12,208.37,37,77096.9,BUY ,
10:00:12,208.37,53,110436.1,BU Y,
10:00:12,208.35,1,2083.5,BUY,
10:00:12,207.98,38,79032.4,SEL L,
10:00:12,207.98,83,172623.4,SE LL,
10:00:12,207.99,10,20799,BUY,
10:00:12,207.97,38,79028.6,SEL L,
10:00:12,207.95,64,133088,SELL ,
10:00:12,207.95,40,83180,SELL,
10:00:12,207.93,30,62379,SELL,
10:00:12,207.93,10,20793,SELL,
10:00:12,207.93,10,20793,SELL,
10:00:12,207.92,140,291088,SEL L,
10:00:12,207.92,150,311880,SEL L,
10:00:12,207.92,10,20792,SELL,
10:00:12,207.92,10,20792,SELL,
10:00:12,207.92,130,270296,SEL L,
10:00:12,207.92,10,20792,SELL,
10:00:13,207.78,76,157912.8,SE LL,
10:00:13,207.76,124,257622.4,S ELL,
10:00:13,207.77,10,20777,SELL,
10:00:13,207.76,76,157897.6,SE LL,
10:00:13,207.76,20,41552,SELL,
10:00:13,207.74,94,195275.6,BU Y,
10:00:13,207.93,30,62379,BUY,
10:00:13,207.93,40,83172,BUY,
10:00:13,208.01,70,145607,BUY,
10:00:13,208.01,10,20801,BUY,
10:00:13,208.01,80,166408,BUY,
10:00:13,208,100,208000,SELL,
10:00:13,207.78,30,62334,SELL,
10:00:13,207.78,20,41556,SELL,
10:00:13,207.96,1,2079.6,BUY,
10:00:13,207.79,1,2077.9,SELL,
10:00:13,207.79,68,141297.2,SE LL,
10:00:13,207.79,23,47791.7,SEL L,
10:00:13,207.77,9,18699.3,SELL ,
10:00:13,207.77,41,85185.7,SEL L,
10:00:13,207.77,199,413462.3,S ELL,
10:00:13,207.77,1,2077.7,SELL,
10:00:13,207.77,25,51942.5,SEL L,
10:00:13,207.77,25,51942.5,SEL L,
10:00:13,207.77,24,49864.8,SEL L,
10:00:13,207.76,150,311640,SEL L,
10:00:13,207.72,1,2077.2,SELL,
10:00:13,207.76,50,103880,BUY,
10:00:13,207.76,10,20776,BUY,
10:00:13,207.78,97,201546.6,SE LL,
10:00:13,207.78,39,81034.2,SEL L,
10:00:13,207.78,4,8311.2,SELL,
10:00:13,207.7,100,207700,SELL ,
10:00:13,207.89,45,93550.5,BUY ,
10:00:13,207.89,5,10394.5,BUY,
10:00:13,207.8,45,93510,SELL,
10:00:13,207.79,82,170387.8,SE LL,
10:00:13,207.78,20,41556,SELL,
10:00:13,207.78,3,6233.4,SELL,
10:00:14,207.78,86,178690.8,SE LL,
10:00:14,207.78,21,43633.8,SEL L,
10:00:14,207.78,20,41556,SELL,
10:00:14,207.78,15,31167,SELL,
10:00:14,207.85,50,103925,BUY,
10:00:14,207.7,15,31155,SELL,
10:00:14,207.85,1,2078.5,BUY,
10:00:14,207.85,25,51962.5,BUY ,
10:00:14,207.92,10,20792,BUY,
10:00:14,207.94,2,4158.8,BUY,
10:00:14,207.94,8,16635.2,BUY,
10:00:14,207.73,66,137101.8,SE LL,
10:00:14,207.73,4,8309.2,SELL,
10:00:14,207.75,58,120495,SELL ,
10:00:14,207.75,15,31162.5,SEL L,
10:00:14,207.7,127,263779,SELL ,
10:00:15,207.7,130,270010,SELL ,
10:00:15,207.89,10,20789,BUY,
10:00:15,207.89,10,20789,BUY,
10:00:15,207.76,10,20776,SELL,
10:00:15,207.75,4,8310,SELL,
10:00:15,207.78,10,20778,SELL,
10:00:15,207.78,42,87267.6,SEL L,
10:00:15,207.75,70,145425,BUY,
10:00:15,207.75,78,162045,BUY,
10:00:15,207.75,2,4155,SELL,
10:00:15,207.75,50,103875,SELL ,
10:00:15,207.75,10,20775,SELL,
10:00:15,207.75,20,41550,SELL,
10:00:15,207.75,10,20775,SELL,
10:00:15,207.7,56,116312,SELL,
10:00:15,207.75,40,83100,SELL,
10:00:15,207.7,20,41540,SELL,
10:00:15,207.94,10,20794,BUY,
10:00:15,207.94,40,83176,BUY,
10:00:15,207.78,50,103890,SELL ,
10:00:15,207.77,60,124662,SELL ,
10:00:15,207.75,70,145425,SELL ,
10:00:15,207.93,5,10396.5,BUY,
10:00:15,207.85,200,415700,BUY ,
10:00:15,207.87,35,72754.5,BUY ,
10:00:15,207.97,5,10398.5,BUY,
10:00:15,207.99,64,133113.6,BU Y,
10:00:15,207.99,38,79036.2,BUY ,
10:00:15,208,84,174720,BUY,
10:00:15,208,210,436800,BUY,
10:00:15,208,563,1171040,SELL,
10:00:15,208,301,626080,SELL,
10:00:15,207.91,40,83164,SELL,
10:00:15,207.91,10,20791,SELL,
10:00:15,207.91,10,20791,SELL,
10:00:15,207.91,10,20791,SELL,
10:00:15,208,10,20800,SELL,
10:00:15,207.95,200,415900,BUY ,
10:00:15,207.93,12,24951.6,SEL L,
10:00:15,208.07,10,20807,BUY,
10:00:15,208,20,41600,BUY,
10:00:15,208,10,20800,BUY,
10:00:15,208.07,30,62421,BUY,
10:00:15,208.07,10,20807,BUY,
10:00:15,208.2,3,6246,BUY,
10:00:15,208.28,5,10414,BUY,
10:00:15,208.34,2,4166.8,BUY,
10:00:15,207.92,64,133068.8,SE LL,
10:00:15,207.91,30,62373,SELL,
10:00:15,207.91,68,141378.8,BU Y,
10:00:15,207.91,38,79005.8,BUY ,
10:00:16,208,3,6240,SELL,
10:00:16,208.05,29,60334.5,BUY ,
10:00:16,208,100,208000,SELL,
10:00:16,207.92,1,2079.2,SELL,
10:00:16,207.92,7,14554.4,SELL ,
10:00:16,207.92,1,2079.2,SELL,
10:00:16,207.92,1,2079.2,SELL,
10:00:16,208,1,2080,BUY,
10:00:16,208.03,10,20803,BUY,
10:00:16,208.03,187,389016.1,B UY,
10:00:16,208.04,10,20804,BUY,
10:00:17,208.22,9,18739.8,BUY,
10:00:17,208.22,1,2082.2,BUY,
10:00:17,208.22,70,145754,BUY,
10:00:17,208.05,2,4161,SELL,
10:00:17,208.05,1,2080.5,SELL,
10:00:17,208.22,200,416440,BUY ,
10:00:17,208.22,2,4164.4,BUY,
10:00:17,208.19,202,420543.8,B UY,
10:00:17,208.2,60,124920,BUY,
10:00:17,208.23,12,24987.6,BUY ,
10:00:17,208.23,1,2082.3,BUY,
10:00:17,208.25,56,116620,BUY,
10:00:17,208.28,12,24993.6,BUY ,
10:00:17,208.3,65,135395,BUY,
10:00:17,208.35,200,416700,BUY ,
10:00:17,208.38,5,10419,BUY,
10:00:17,208.4,64,133376,BUY,
10:00:17,208.41,50,104205,BUY,
10:00:17,208.48,5,10424,BUY,


Вот сам код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
#include <iostream>
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QTextStream>
#include <QMainWindow>
#include <QWidget>
#include <QPainter>
#include <QLineSeries>
#include <QChartView>
#include <QtCharts>
 
                                                                                             //Parametrs
 
int difo = 20;    //- how big volume from midle you want
 
 
                                                                                             //Base
using namespace QtCharts;
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFile file("C:\\Users\\YKO\\Desktop\\C++\\txt data\\Gazprom\\10.txt");
    //Parametrs
    //Create items
    int lines = 0;
    int i = 0;
 
    QStringList columms;
    //Run cicle for filtering data
     if ((file.exists())&&(file.open(QIODevice::ReadOnly | QIODevice:: Text)))
     {
         QTextStream out(&file);
         while(!out.atEnd())
         {
             QString str= out.readLine();
             columms.append(str.split(","));
             lines = lines + 1;
         }
         file.close();
     }
 
    //lines = 6000;
    int last = 2000;
 
 
 
 
 
                                                                     // Add data in Qvector "PRICE"
 
 
    QVector<double>price;
    for (i = 0; i < lines * 6; i = i+6)
        price.append(columms[i+1].toDouble());
 
//VOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUME//
 
 
                                                                               //ALL VOLUME//
    QVector<double>volume;
    for (i = 0; i < lines * 6; i = i+6)
             volume.append(columms[i+3].toDouble());
    QVector<double>volumeA;
    for (i = 0; i < volume.size(); i++)
        if(i>0)
            volumeA.append(volume[i]+volumeA[i-1]);
        else if(i == 0)
            volumeA.append(volume[i]);
 
 
                                                                        // BUY and SELL VOLUME for one time//
    QVector<double>Bvolume;
    QVector<double>Svolume;
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "BUY")
         {
             Bvolume.append(columms[i+3].toDouble());
         }
         else if (columms[i+4] != "BUY")
             Bvolume.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "SELL")
         {
             Svolume.append(columms[i+3].toDouble());
         }
         else if (columms[i+4] != "SELL")
             Svolume.append(0);
 
 
                                                                                 // BUY AND SELL VOLUME ALL//
    QVector<double>BvolumeSUM;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeSUM.append(Bvolume[i]+BvolumeSUM[i-1]);
        else if(i==0)
            BvolumeSUM.append(0);
 
   QVector<double>SvolumeSUM;
   for (i = 0; i < Svolume.size(); i++)
       if(i>0)
           SvolumeSUM.append(Svolume[i]+SvolumeSUM[i-1]);
       else if(i==0)
           SvolumeSUM.append(0);
 
 
//QTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTY//
 
                                                                                 // BUY and SELL QTY for one time//
 
    QVector<double>Bqty;
    QVector<double>Sqty;
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "BUY")
         {
             Bqty.append(columms[i+2].toDouble());
         }
         else if (columms[i+4] != "BUY")
             Bqty.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "SELL")
         {
             Sqty.append(columms[i+2].toDouble());
         }
         else if (columms[i+4] != "SELL")
             Sqty.append(0);
 
 
 
                                                                                    // BUY and SELL QTY ALL//
     QVector<double>BQTYSUM;
     for (i = 0; i < Bqty.size(); i++)
         if(i>0)
             BQTYSUM.append(Bqty[i]+BQTYSUM[i-1]);
         else if(i==0)
             BQTYSUM.append(0);
 
     QVector<double>SQTYSUM;
     for (i = 0; i < Sqty.size(); i++)
         if(i>0)
             SQTYSUM.append(Sqty[i]+SQTYSUM[i-1]);
         else if(i==0)
             SQTYSUM.append(0);
 
 
//-INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS-//
 
                                                               // SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)//
     QVector<double>MBVolumeGeneral;
     for (i = 0; i < BvolumeSUM.size(); i++)
         MBVolumeGeneral.append(BvolumeSUM[i]/BQTYSUM[i]);
     QVector<double>MSVolumeGeneral;
     for (i = 0; i < SvolumeSUM.size(); i++)
         MSVolumeGeneral.append(SvolumeSUM[i]/SQTYSUM[i]);
 
 
                                                                              // SHOW HOW CHANGE MIDLE QTY IN TIME//
     QVector<double>BQTYforGEN;
     for (i = 0; i < Bqty.size(); i++)
         if(i<=1000)
             BQTYforGEN.append(BQTYSUM[i]/i);
         else if(i>1000)
             BQTYforGEN.append(BQTYforGEN[1000]);
     QVector<double>SQTYforGEN;
     for (i = 0; i < Sqty.size(); i++)
         if(i<=1000)
             SQTYforGEN.append(SQTYSUM[i]/i);
         else if(i>1000)
             SQTYforGEN.append(SQTYforGEN[1000]);
 
 
                                                                                  //SHOW BUY AND SELL QTY FOR BIG
 
     QVector<double>BQTYBIG;
     for (i = 0; i <BQTYforGEN.size(); i++)
         if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo )
             BQTYBIG.append(Bqty[i]);
         else
             BQTYBIG.append(0);
     QVector<double>SQTYBIG;
     for (i = 0; i < SQTYforGEN.size(); i++)
         if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
             SQTYBIG.append(Sqty[i]);
         else
             SQTYBIG.append(0);
 
 
                                                                                   //SHOW BUY AND SELL VOLUME FOR BIG
     QVector<double>BvolumeBIG;
     for (i = 0; i <BQTYforGEN.size(); i++)
         if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo)
             BvolumeBIG.append(Bvolume[i]);
         else
             BvolumeBIG.append(0);
     QVector<double>SvolumeBIG;
     for (i = 0; i <SQTYforGEN.size(); i++)
         if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
             SvolumeBIG.append(Svolume[i]);
         else
             SvolumeBIG.append(0);
 
                                                                             //SHOW BUY VOLUME SUMM  AND SELL VOLUME SUMM  FOR BIG
 
    QVector<double>BvolumeDif;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeDif.append(BvolumeBIG[i]+BvolumeDif[i-1]);
        else if(i==0)
            BvolumeDif.append(0);
 
    QVector<double>SvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SvolumeDif.append(SvolumeBIG[i]+SvolumeDif[i-1]);
        else if(i==0)
            SvolumeDif.append(0);
 
    QVector<double>SBvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SBvolumeDif.append(SvolumeDif[i]+BvolumeDif[i]);
        else if(i==0)
            SBvolumeDif.append(0);
 
                                                                             //SHOW % FOR BUY VOLUME SUMM FROM ALL VOLUME
                                                                             //and SHOW % FOR SELL VOLUME SUMM  FROM ALL VOLUME
 
    QVector<double>BvolumeSOO;
    for (i = 0; i < BvolumeSUM.size(); i++)
        if(BvolumeSUM[i]!=0)
            BvolumeSOO.append((BvolumeSUM[i]/volumeA[i])*100);
        else if(BvolumeSUM[i]==0)
            BvolumeSOO.append(0);
 
    QVector<double>SvolumeSOO;
    for (i = 0; i < SvolumeSUM.size(); i++)
        if(SvolumeSUM[i]!=0)
            SvolumeSOO.append((SvolumeSUM[i]/volumeA[i])*100);
        else if(SvolumeSUM [i]==0)
            SvolumeSOO.append(0);
 
                                                                              //SHOW % FOR BUY VOLUME SUMM BIG FROM ALL BIG VOLUME
                                                                              //and  SHOW % FOR SELL VOLUME SUMM BIG FROM ALL BIG VOLUME
 
    QVector<double>BvolumeSOOALL;
    for (i = 0; i < BvolumeBIG.size(); i++)
        if(BvolumeBIG[i]!=0)
            BvolumeSOOALL.append((BvolumeDif[i]/SBvolumeDif[i])*100);
        else if(BvolumeBIG[i]==0)
            BvolumeSOOALL.append(0);
 
    QVector<double>SvolumeSOOALL;
    for (i = 0; i < SvolumeBIG.size(); i++)
        if(SvolumeBIG[i]!=0)
            SvolumeSOOALL.append((SvolumeDif[i]/SBvolumeDif[i])*100);
        else if(SvolumeBIG[i]==0)
            SvolumeSOOALL.append(0);
 
 
 
 
 
                                                                        //GRAPHIC//
 
                                                    // use QGraphicsScene + QGraphicsView instead of QChartView
     QGraphicsScene scene(0, 0, 960, 700);
     QGraphicsView view(&scene);
     view.setRenderHint(QPainter::Antialiasing);
     view.setMinimumSize(1000, 600);
     view.setSceneRect(0, 0, 960, 700);
 
                                                                        // PRICE
    QChart *chart = new QChart();
    chart->setTitle("ACCUM. VOLUME");
    chart->legend()->setVisible(false);
    QLineSeries *series = new QLineSeries();
//    QLineSeries *series1011 = new QLineSeries();
 
 
    for (i = last; i < lines-2; i++)
        series->append(i, price[i]);
 
//    for (i = 0; i < BvolumeSOOALL.size(); i++)
//        if(SvolumeSOOALL[i] > 65)
//        series1011->append(i, price[i]);
 
 
 
 
    chart->addSeries(series);
//    chart->addSeries(series1011);
 
 
 
    chart->setGeometry(-210, -80, 1400, 250);
    chart->createDefaultAxes();
    chart->setBackgroundVisible(true);
    chart->setBackgroundPen(QPen(Qt::lightGray));
    chart->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart);
 
 
                                                                         //"MIDLE QTY"
    QChart *chart2 = new QChart();
    chart2->setTitle(" SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)");
    chart2->legend()->setVisible(false);
    QLineSeries *series22 = new QLineSeries();
    QLineSeries *series21 = new QLineSeries();
 
    for (i = last; i < MBVolumeGeneral.size(); i++)
        series22->append(i, MBVolumeGeneral[i]);
    for (i = last; i < MSVolumeGeneral.size(); i++)
        series21->append(i, MSVolumeGeneral[i]);
 
 
    chart2->addSeries(series22);
    chart2->addSeries(series21);
 
    chart2->setGeometry(-220, 155, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart2->createDefaultAxes();
    chart2->setBackgroundVisible(true);
    chart2->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart2->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart2);
 
 
                                                                         //BUY&SELL from ALL VOLUME
    QChart *chart3 = new QChart();
    chart3->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM FROM ALL VOLUME ");
    chart3->legend()->setVisible(false);
    QLineSeries *series23 = new QLineSeries();
    QLineSeries *series24 = new QLineSeries();
    QLineSeries *series245 = new QLineSeries();
    QLineSeries *series246 = new QLineSeries();
    QLineSeries *series247 = new QLineSeries();
 
 
 
 
 
 
    for (i = last; i < BvolumeSOO.size(); i++)
        if(BvolumeSOO[i] != 0)
            series23->append(i, BvolumeSOO[i]);
    for (i = last; i < SvolumeSOO.size(); i++)
        if(SvolumeSOO[i] != 0)
            series24->append(i, SvolumeSOO[i]);
    for (i = last; i < BvolumeSOO.size(); i++)
        series245->append(i, 50);
    for (i = last; i < BvolumeSOO.size(); i++)
        series246->append(i, 65);
    for (i = last; i < BvolumeSOO.size(); i++)
        series247->append(i, 35);
 
 
 
 
 
    chart3->addSeries(series23);
    chart3->addSeries(series24);
    chart3->addSeries(series245);
    chart3->addSeries(series246);
    chart3->addSeries(series247);
 
 
 
 
 
 
    chart3->setGeometry(-220, 370, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart3->createDefaultAxes();
    chart3->setBackgroundVisible(true);
    chart3->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart3->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart3);
 
                                                                             //"BIG VOLUME"
    QChart *chart4 = new QChart();
    chart4->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM BIG FROM ALL BIG VOLUME");
    chart4->legend()->setVisible(false);
    QLineSeries *series25 = new QLineSeries();
    QLineSeries *series26 = new QLineSeries();
    QLineSeries *series265 = new QLineSeries();
    QLineSeries *series266 = new QLineSeries();
    QLineSeries *series267 = new QLineSeries();
 
 
 
 
 
 
    for (i = last; i < BvolumeSOOALL.size(); i++)
        if(BvolumeSOOALL[i] != 0)
            series25->append(i, BvolumeSOOALL[i]);
    for (i = last; i < SvolumeSOOALL.size(); i++)
        if(SvolumeSOOALL[i] != 0)
            series26->append(i, SvolumeSOOALL[i]);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series265->append(i, 50);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series266->append(i, 65);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series267->append(i, 35);
 
 
 
 
    chart4->addSeries(series25);
    chart4->addSeries(series26);
    chart4->addSeries(series265);
    chart4->addSeries(series266);
    chart4->addSeries(series267);
 
 
 
 
 
    chart4->setGeometry(-220, 570, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart4->createDefaultAxes();
    chart4->setBackgroundVisible(true);
    chart4->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart4->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart4);
 
 
    view.show();
 
    return a.exec();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2020, 09:26
Ответы с готовыми решениями:

ConfigurationManager.AppSettings как после изменения обновить значения в файле
сохраняю настройки следующим образом ConfigurationManager.AppSettings = this.tbServerDB.Text; ...

Как обновить/изменить строку в datagridview и сохранить эти изменения в txt файле?
Заранее спасибо.

Как обновить выборку после изменения html?
Проблема в следующем... Изначально есть несколько div элементов на странице, все они попадают в...

Как обновить базу MySQL после изменения в QTableView ?
Привет всем. 1. как можно настройть TQableView так, чтобы можно было изменить базу данных? 2. Как...

14
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:13 2
Лучший ответ Сообщение было отмечено YKO как решение

Решение

YKO, вот так будет перерисовка раз в 1 секунду
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
...
    QChart *chart = new QChart();
    {
        QTimer* timer=new QTimer(chart);
        timer->start(1000);
        QObject::connect(timer,timer->timeout,[chart]
        {
            chart->update();
        });
    }
 
...
1
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:24  [ТС] 3
Алексей1153,
В какой части кода это вставить?Ругается на timeout:
main.cpp:286:39: error: reference to non-static member function must be called
0
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:31 4
YKO, сразу после твоей строки
QChart *chart = new QChart();

Добавлено через 2 минуты
собственно, можно все чарты им обновлять, не только один
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:39  [ТС] 5
Алексей1153,
Это я понял,так и вставил,но ругань на то что неопределенная функция timeout... что за *#?*? ))) Нужен отдельный заголовочный файл с определением функции timeout или что? Я в C++ всего две недели и не до конца понимаю логику

Добавлено через 2 минуты
Алексей1153,
Хотя сам график выводится...немного задрочу эту проблему,Спасибо за отклик)
0
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:41 6
YKO, а есть инклуд?
C++ (Qt)
1
#include <QTimer>
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:43  [ТС] 7
Алексей1153,
Ну я не настолько туп)
Да,есть.
Вот как это сейчас выглядит:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
#include <iostream>
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QTextStream>
#include <QMainWindow>
#include <QWidget>
#include <QPainter>
#include <QLineSeries>
#include <QChartView>
#include <QtCharts>
#include <QTimer>
#include <QTime>
 
 
 
                                                                                             //Parametrs
 
int difo = 20;    //- how big volume from midle you want
 
 
                                                                                             //Base
using namespace QtCharts;
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFile file("C:\\Users\\YKO\\Desktop\\C++\\txt data\\Gazprom\\10.txt");
    //Parametrs
    //Create items
    int lines = 0;
    int i = 0;
 
    QStringList columms;
    //Run cicle for filtering data
     if ((file.exists())&&(file.open(QIODevice::ReadOnly | QIODevice:: Text)))
     {
         QTextStream out(&file);
         while(!out.atEnd())
         {
             QString str= out.readLine();
             columms.append(str.split(","));
             lines = lines + 1;
         }
         file.close();
     }
 
    //lines = 6000;
    int last = 2000;
 
 
 
 
 
                                                                     // Add data in Qvector "PRICE"
 
 
    QVector<double>price;
    for (i = 0; i < lines * 6; i = i+6)
        price.append(columms[i+1].toDouble());
 
//VOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUMEVOLUME//
 
 
                                                                               //ALL VOLUME//
    QVector<double>volume;
    for (i = 0; i < lines * 6; i = i+6)
             volume.append(columms[i+3].toDouble());
    QVector<double>volumeA;
    for (i = 0; i < volume.size(); i++)
        if(i>0)
            volumeA.append(volume[i]+volumeA[i-1]);
        else if(i == 0)
            volumeA.append(volume[i]);
 
 
                                                                        // BUY and SELL VOLUME for one time//
    QVector<double>Bvolume;
    QVector<double>Svolume;
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "BUY")
         {
             Bvolume.append(columms[i+3].toDouble());
         }
         else if (columms[i+4] != "BUY")
             Bvolume.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "SELL")
         {
             Svolume.append(columms[i+3].toDouble());
         }
         else if (columms[i+4] != "SELL")
             Svolume.append(0);
 
 
                                                                                 // BUY AND SELL VOLUME ALL//
    QVector<double>BvolumeSUM;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeSUM.append(Bvolume[i]+BvolumeSUM[i-1]);
        else if(i==0)
            BvolumeSUM.append(0);
 
   QVector<double>SvolumeSUM;
   for (i = 0; i < Svolume.size(); i++)
       if(i>0)
           SvolumeSUM.append(Svolume[i]+SvolumeSUM[i-1]);
       else if(i==0)
           SvolumeSUM.append(0);
 
 
//QTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTYQTY//
 
                                                                                 // BUY and SELL QTY for one time//
 
    QVector<double>Bqty;
    QVector<double>Sqty;
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "BUY")
         {
             Bqty.append(columms[i+2].toDouble());
         }
         else if (columms[i+4] != "BUY")
             Bqty.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
         if (columms[i+4] == "SELL")
         {
             Sqty.append(columms[i+2].toDouble());
         }
         else if (columms[i+4] != "SELL")
             Sqty.append(0);
 
 
 
                                                                                    // BUY and SELL QTY ALL//
     QVector<double>BQTYSUM;
     for (i = 0; i < Bqty.size(); i++)
         if(i>0)
             BQTYSUM.append(Bqty[i]+BQTYSUM[i-1]);
         else if(i==0)
             BQTYSUM.append(0);
 
     QVector<double>SQTYSUM;
     for (i = 0; i < Sqty.size(); i++)
         if(i>0)
             SQTYSUM.append(Sqty[i]+SQTYSUM[i-1]);
         else if(i==0)
             SQTYSUM.append(0);
 
 
//-INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS--INDIATORS-//
 
                                                               // SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)//
     QVector<double>MBVolumeGeneral;
     for (i = 0; i < BvolumeSUM.size(); i++)
         MBVolumeGeneral.append(BvolumeSUM[i]/BQTYSUM[i]);
     QVector<double>MSVolumeGeneral;
     for (i = 0; i < SvolumeSUM.size(); i++)
         MSVolumeGeneral.append(SvolumeSUM[i]/SQTYSUM[i]);
 
 
                                                                              // SHOW HOW CHANGE MIDLE QTY IN TIME//
     QVector<double>BQTYforGEN;
     for (i = 0; i < Bqty.size(); i++)
         if(i<=1000)
             BQTYforGEN.append(BQTYSUM[i]/i);
         else if(i>1000)
             BQTYforGEN.append(BQTYforGEN[1000]);
     QVector<double>SQTYforGEN;
     for (i = 0; i < Sqty.size(); i++)
         if(i<=1000)
             SQTYforGEN.append(SQTYSUM[i]/i);
         else if(i>1000)
             SQTYforGEN.append(SQTYforGEN[1000]);
 
 
                                                                                  //SHOW BUY AND SELL QTY FOR BIG
 
     QVector<double>BQTYBIG;
     for (i = 0; i <BQTYforGEN.size(); i++)
         if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo )
             BQTYBIG.append(Bqty[i]);
         else
             BQTYBIG.append(0);
     QVector<double>SQTYBIG;
     for (i = 0; i < SQTYforGEN.size(); i++)
         if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
             SQTYBIG.append(Sqty[i]);
         else
             SQTYBIG.append(0);
 
 
                                                                                   //SHOW BUY AND SELL VOLUME FOR BIG
     QVector<double>BvolumeBIG;
     for (i = 0; i <BQTYforGEN.size(); i++)
         if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo)
             BvolumeBIG.append(Bvolume[i]);
         else
             BvolumeBIG.append(0);
     QVector<double>SvolumeBIG;
     for (i = 0; i <SQTYforGEN.size(); i++)
         if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
             SvolumeBIG.append(Svolume[i]);
         else
             SvolumeBIG.append(0);
 
                                                                             //SHOW BUY VOLUME SUMM  AND SELL VOLUME SUMM  FOR BIG
 
    QVector<double>BvolumeDif;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeDif.append(BvolumeBIG[i]+BvolumeDif[i-1]);
        else if(i==0)
            BvolumeDif.append(0);
 
    QVector<double>SvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SvolumeDif.append(SvolumeBIG[i]+SvolumeDif[i-1]);
        else if(i==0)
            SvolumeDif.append(0);
 
    QVector<double>SBvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SBvolumeDif.append(SvolumeDif[i]+BvolumeDif[i]);
        else if(i==0)
            SBvolumeDif.append(0);
 
                                                                             //SHOW % FOR BUY VOLUME SUMM FROM ALL VOLUME
                                                                             //and SHOW % FOR SELL VOLUME SUMM  FROM ALL VOLUME
 
    QVector<double>BvolumeSOO;
    for (i = 0; i < BvolumeSUM.size(); i++)
        if(BvolumeSUM[i]!=0)
            BvolumeSOO.append((BvolumeSUM[i]/volumeA[i])*100);
        else if(BvolumeSUM[i]==0)
            BvolumeSOO.append(0);
 
    QVector<double>SvolumeSOO;
    for (i = 0; i < SvolumeSUM.size(); i++)
        if(SvolumeSUM[i]!=0)
            SvolumeSOO.append((SvolumeSUM[i]/volumeA[i])*100);
        else if(SvolumeSUM [i]==0)
            SvolumeSOO.append(0);
 
                                                                              //SHOW % FOR BUY VOLUME SUMM BIG FROM ALL BIG VOLUME
                                                                              //and  SHOW % FOR SELL VOLUME SUMM BIG FROM ALL BIG VOLUME
 
    QVector<double>BvolumeSOOALL;
    for (i = 0; i < BvolumeBIG.size(); i++)
        if(BvolumeBIG[i]!=0)
            BvolumeSOOALL.append((BvolumeDif[i]/SBvolumeDif[i])*100);
        else if(BvolumeBIG[i]==0)
            BvolumeSOOALL.append(0);
 
    QVector<double>SvolumeSOOALL;
    for (i = 0; i < SvolumeBIG.size(); i++)
        if(SvolumeBIG[i]!=0)
            SvolumeSOOALL.append((SvolumeDif[i]/SBvolumeDif[i])*100);
        else if(SvolumeBIG[i]==0)
            SvolumeSOOALL.append(0);
 
 
 
 
 
                                                                        //GRAPHIC//
 
                                                    // use QGraphicsScene + QGraphicsView instead of QChartView
     QGraphicsScene scene(0, 0, 960, 700);
     QGraphicsView view(&scene);
     view.setRenderHint(QPainter::Antialiasing);
     view.setMinimumSize(1000, 600);
     view.setSceneRect(0, 0, 960, 700);
 
                                                                        // PRICE
    QChart *chart = new QChart();
    {
        QTimer* timer=new QTimer(chart);
        timer->start(1000);
        QObject::connect(timer,timer->timeout,[chart]
        {
            chart->update();
        });
    }
    chart->setTitle("ACCUM. VOLUME");
    chart->legend()->setVisible(false);
    QLineSeries *series = new QLineSeries();
//    QLineSeries *series1011 = new QLineSeries();
 
 
    for (i = last; i < lines-2; i++)
        series->append(i, price[i]);
 
//    for (i = 0; i < BvolumeSOOALL.size(); i++)
//        if(SvolumeSOOALL[i] > 65)
//        series1011->append(i, price[i]);
 
 
 
 
    chart->addSeries(series);
//    chart->addSeries(series1011);
 
 
 
    chart->setGeometry(-210, -80, 1400, 250);
    chart->createDefaultAxes();
    chart->setBackgroundVisible(true);
    chart->setBackgroundPen(QPen(Qt::lightGray));
    chart->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart);
 
 
                                                                         //"MIDLE QTY"
    QChart *chart2 = new QChart();
    chart2->setTitle(" SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)");
    chart2->legend()->setVisible(false);
    QLineSeries *series22 = new QLineSeries();
    QLineSeries *series21 = new QLineSeries();
 
    for (i = last; i < MBVolumeGeneral.size(); i++)
        series22->append(i, MBVolumeGeneral[i]);
    for (i = last; i < MSVolumeGeneral.size(); i++)
        series21->append(i, MSVolumeGeneral[i]);
 
 
    chart2->addSeries(series22);
    chart2->addSeries(series21);
 
    chart2->setGeometry(-220, 155, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart2->createDefaultAxes();
    chart2->setBackgroundVisible(true);
    chart2->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart2->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart2);
 
 
                                                                         //BUY&SELL from ALL VOLUME
    QChart *chart3 = new QChart();
    chart3->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM FROM ALL VOLUME ");
    chart3->legend()->setVisible(false);
    QLineSeries *series23 = new QLineSeries();
    QLineSeries *series24 = new QLineSeries();
    QLineSeries *series245 = new QLineSeries();
    QLineSeries *series246 = new QLineSeries();
    QLineSeries *series247 = new QLineSeries();
 
 
 
 
 
 
    for (i = last; i < BvolumeSOO.size(); i++)
        if(BvolumeSOO[i] != 0)
            series23->append(i, BvolumeSOO[i]);
    for (i = last; i < SvolumeSOO.size(); i++)
        if(SvolumeSOO[i] != 0)
            series24->append(i, SvolumeSOO[i]);
    for (i = last; i < BvolumeSOO.size(); i++)
        series245->append(i, 50);
    for (i = last; i < BvolumeSOO.size(); i++)
        series246->append(i, 65);
    for (i = last; i < BvolumeSOO.size(); i++)
        series247->append(i, 35);
 
 
 
 
 
    chart3->addSeries(series23);
    chart3->addSeries(series24);
    chart3->addSeries(series245);
    chart3->addSeries(series246);
    chart3->addSeries(series247);
 
 
 
 
 
 
    chart3->setGeometry(-220, 370, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart3->createDefaultAxes();
    chart3->setBackgroundVisible(true);
    chart3->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart3->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart3);
 
                                                                             //"BIG VOLUME"
    QChart *chart4 = new QChart();
    chart4->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM BIG FROM ALL BIG VOLUME");
    chart4->legend()->setVisible(false);
    QLineSeries *series25 = new QLineSeries();
    QLineSeries *series26 = new QLineSeries();
    QLineSeries *series265 = new QLineSeries();
    QLineSeries *series266 = new QLineSeries();
    QLineSeries *series267 = new QLineSeries();
 
 
 
 
 
 
    for (i = last; i < BvolumeSOOALL.size(); i++)
        if(BvolumeSOOALL[i] != 0)
            series25->append(i, BvolumeSOOALL[i]);
    for (i = last; i < SvolumeSOOALL.size(); i++)
        if(SvolumeSOOALL[i] != 0)
            series26->append(i, SvolumeSOOALL[i]);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series265->append(i, 50);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series266->append(i, 65);
    for (i = last; i < BvolumeSOOALL.size(); i++)
        series267->append(i, 35);
 
 
 
 
    chart4->addSeries(series25);
    chart4->addSeries(series26);
    chart4->addSeries(series265);
    chart4->addSeries(series266);
    chart4->addSeries(series267);
 
 
 
 
 
    chart4->setGeometry(-220, 570, 1420, 250); // the method of QGraphicsWidget, move && resize
    chart4->createDefaultAxes();
    chart4->setBackgroundVisible(true);
    chart4->setBackgroundPen(QPen(Qt::lightGray)); // the frame
    chart4->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    scene.addItem(chart4);
 
 
    view.show();
 
 
 
    return a.exec();
}
0
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:43 8
возможно, ещё в pro файл нужно добавить строчку

CONFIG+=c++14
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:49  [ТС] 9
Алексей1153,
0
Миниатюры
Как обновить график после каждого изменения в файле с данными для графика   Как обновить график после каждого изменения в файле с данными для графика  
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:49 10
скопипастил твой код из последнего поста - скомпилилось нормально
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:50  [ТС] 11
Алексей1153,
собственно когда и сам таймером пробовал решить, сталкивался с этим
0
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 10:50 12
YKO, так компилится нормально у тебя, это какой-то проверятор глючит типа статического анализатора Clang. Запускай, не обращай внимания
0
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 10:54  [ТС] 13
Алексей1153,
Вопрос еще такой,помоги,a?
Вот есть QStringList columms;
а затем и QVector<double>price и т.д.
так вот вопрос вот в чем- я могу их также обновить таймером поочередно?

Добавлено через 1 минуту
Алексей1153,
Да)Я тоже на это обратил внимание , что запуск идет, а ругань есть) Спасибо тебе огромное!!!)Ты мой спаситель)С форума не пропадай,разбогатею 2% с прибыли тебе за год)
0
фрилансер
1061 / 683 / 226
Регистрация: 11.10.2019
Сообщений: 2,308
22.05.2020, 11:05 14
Лучший ответ Сообщение было отмечено YKO как решение

Решение

Цитата Сообщение от YKO Посмотреть сообщение
разбогатею 2% с прибыли тебе за год
ловлю на слове, ха ха ))

Цитата Сообщение от YKO Посмотреть сообщение
я могу их также обновить таймером поочередно
всё можешь, главное, чтобы лямбда знала про них. Вот чуть приглаженный вариант с чартами (там ещё с циклами можнонужно порядок навести, но это мне лень)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QTextStream>
#include <QMainWindow>
#include <QWidget>
#include <QPainter>
#include <QLineSeries>
#include <QChartView>
#include <QtCharts>
#include <QTimer>
#include <QTime>
 
//Parametrs
constexpr int difo = 20;    //- how big volume from midle you want
 
//Base
//using namespace QtCharts;
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFile file("C:\\Users\\YKO\\Desktop\\C++\\txt data\\Gazprom\\10.txt");
    //Parametrs
    //Create items
    int lines = 0;
    int i = 0;
 
    QStringList columms;
    //Run cicle for filtering data
    if ((file.exists())&&(file.open(QIODevice::ReadOnly | QIODevice:: Text)))
    {
        QTextStream out(&file);
        while(!out.atEnd())
        {
            QString str= out.readLine();
            columms.append(str.split(","));
            lines = lines + 1;
        }
        file.close();
    }
 
    //lines = 6000;
    int last = 2000;
 
    // Add data in Qvector "PRICE"
 
 
    QVector<double>price;
    for (i = 0; i < lines * 6; i = i+6)
        price.append(columms[i+1].toDouble());
 
 
 
    //ALL VOLUME//
    QVector<double>volume;
    for (i = 0; i < lines * 6; i = i+6)
        volume.append(columms[i+3].toDouble());
    QVector<double>volumeA;
    for (i = 0; i < volume.size(); i++)
        if(i>0)
            volumeA.append(volume[i]+volumeA[i-1]);
        else if(i == 0)
            volumeA.append(volume[i]);
 
 
    // BUY and SELL VOLUME for one time//
    QVector<double>Bvolume;
    QVector<double>Svolume;
 
    for (i = 0; i < lines * 6; i = i+6)
        if (columms[i+4] == "BUY")
        {
            Bvolume.append(columms[i+3].toDouble());
        }
        else if (columms[i+4] != "BUY")
            Bvolume.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
        if (columms[i+4] == "SELL")
        {
            Svolume.append(columms[i+3].toDouble());
        }
        else if (columms[i+4] != "SELL")
            Svolume.append(0);
 
 
    // BUY AND SELL VOLUME ALL//
    QVector<double>BvolumeSUM;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeSUM.append(Bvolume[i]+BvolumeSUM[i-1]);
        else if(i==0)
            BvolumeSUM.append(0);
 
    QVector<double>SvolumeSUM;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SvolumeSUM.append(Svolume[i]+SvolumeSUM[i-1]);
        else if(i==0)
            SvolumeSUM.append(0);
 
 
 
    // BUY and SELL QTY for one time//
 
    QVector<double>Bqty;
    QVector<double>Sqty;
 
    for (i = 0; i < lines * 6; i = i+6)
        if (columms[i+4] == "BUY")
        {
            Bqty.append(columms[i+2].toDouble());
        }
        else if (columms[i+4] != "BUY")
            Bqty.append(0);
 
    for (i = 0; i < lines * 6; i = i+6)
        if (columms[i+4] == "SELL")
        {
            Sqty.append(columms[i+2].toDouble());
        }
        else if (columms[i+4] != "SELL")
            Sqty.append(0);
 
 
 
    // BUY and SELL QTY ALL//
    QVector<double>BQTYSUM;
    for (i = 0; i < Bqty.size(); i++)
        if(i>0)
            BQTYSUM.append(Bqty[i]+BQTYSUM[i-1]);
        else if(i==0)
            BQTYSUM.append(0);
 
    QVector<double>SQTYSUM;
    for (i = 0; i < Sqty.size(); i++)
        if(i>0)
            SQTYSUM.append(Sqty[i]+SQTYSUM[i-1]);
        else if(i==0)
            SQTYSUM.append(0);
 
 
 
    // SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)//
    QVector<double>MBVolumeGeneral;
    for (i = 0; i < BvolumeSUM.size(); i++)
        MBVolumeGeneral.append(BvolumeSUM[i]/BQTYSUM[i]);
    QVector<double>MSVolumeGeneral;
    for (i = 0; i < SvolumeSUM.size(); i++)
        MSVolumeGeneral.append(SvolumeSUM[i]/SQTYSUM[i]);
 
 
    // SHOW HOW CHANGE MIDLE QTY IN TIME//
    QVector<double>BQTYforGEN;
    for (i = 0; i < Bqty.size(); i++)
        if(i<=1000)
            BQTYforGEN.append(BQTYSUM[i]/i);
        else if(i>1000)
            BQTYforGEN.append(BQTYforGEN[1000]);
    QVector<double>SQTYforGEN;
    for (i = 0; i < Sqty.size(); i++)
        if(i<=1000)
            SQTYforGEN.append(SQTYSUM[i]/i);
        else if(i>1000)
            SQTYforGEN.append(SQTYforGEN[1000]);
 
 
    //SHOW BUY AND SELL QTY FOR BIG
 
    QVector<double>BQTYBIG;
    for (i = 0; i <BQTYforGEN.size(); i++)
        if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo )
            BQTYBIG.append(Bqty[i]);
        else
            BQTYBIG.append(0);
    QVector<double>SQTYBIG;
    for (i = 0; i < SQTYforGEN.size(); i++)
        if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
            SQTYBIG.append(Sqty[i]);
        else
            SQTYBIG.append(0);
 
 
    //SHOW BUY AND SELL VOLUME FOR BIG
    QVector<double>BvolumeBIG;
    for (i = 0; i <BQTYforGEN.size(); i++)
        if(Bqty[i] !=0 and Bqty[i]/BQTYforGEN[i]>difo)
            BvolumeBIG.append(Bvolume[i]);
        else
            BvolumeBIG.append(0);
    QVector<double>SvolumeBIG;
    for (i = 0; i <SQTYforGEN.size(); i++)
        if(Sqty[i] !=0 and Sqty[i]/SQTYforGEN[i]>difo )
            SvolumeBIG.append(Svolume[i]);
        else
            SvolumeBIG.append(0);
 
    //SHOW BUY VOLUME SUMM  AND SELL VOLUME SUMM  FOR BIG
 
    QVector<double>BvolumeDif;
    for (i = 0; i < Bvolume.size(); i++)
        if(i>0)
            BvolumeDif.append(BvolumeBIG[i]+BvolumeDif[i-1]);
        else if(i==0)
            BvolumeDif.append(0);
 
    QVector<double>SvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SvolumeDif.append(SvolumeBIG[i]+SvolumeDif[i-1]);
        else if(i==0)
            SvolumeDif.append(0);
 
    QVector<double>SBvolumeDif;
    for (i = 0; i < Svolume.size(); i++)
        if(i>0)
            SBvolumeDif.append(SvolumeDif[i]+BvolumeDif[i]);
        else if(i==0)
            SBvolumeDif.append(0);
 
    //SHOW % FOR BUY VOLUME SUMM FROM ALL VOLUME
    //and SHOW % FOR SELL VOLUME SUMM  FROM ALL VOLUME
 
    QVector<double>BvolumeSOO;
    for (i = 0; i < BvolumeSUM.size(); i++)
        if(BvolumeSUM[i]!=0)
            BvolumeSOO.append((BvolumeSUM[i]/volumeA[i])*100);
        else if(BvolumeSUM[i]==0)
            BvolumeSOO.append(0);
 
    QVector<double>SvolumeSOO;
    for (i = 0; i < SvolumeSUM.size(); i++)
        if(SvolumeSUM[i]!=0)
            SvolumeSOO.append((SvolumeSUM[i]/volumeA[i])*100);
        else if(SvolumeSUM [i]==0)
            SvolumeSOO.append(0);
 
    //SHOW % FOR BUY VOLUME SUMM BIG FROM ALL BIG VOLUME
    //and  SHOW % FOR SELL VOLUME SUMM BIG FROM ALL BIG VOLUME
 
    QVector<double>BvolumeSOOALL;
    for (i = 0; i < BvolumeBIG.size(); i++)
        if(BvolumeBIG[i]!=0)
            BvolumeSOOALL.append((BvolumeDif[i]/SBvolumeDif[i])*100);
        else if(BvolumeBIG[i]==0)
            BvolumeSOOALL.append(0);
 
    QVector<double>SvolumeSOOALL;
    for (i = 0; i < SvolumeBIG.size(); i++)
        if(SvolumeBIG[i]!=0)
            SvolumeSOOALL.append((SvolumeDif[i]/SBvolumeDif[i])*100);
        else if(SvolumeBIG[i]==0)
            SvolumeSOOALL.append(0);
 
 
 
 
 
    //GRAPHIC//
 
    // use QGraphicsScene + QGraphicsView instead of QChartView
    QGraphicsScene scene(0, 0, 960, 700);
    QGraphicsView view(&scene);
    view.setRenderHint(QPainter::Antialiasing);
    view.setMinimumSize(1000, 600);
    view.setSceneRect(0, 0, 960, 700);
 
    QChart* chart1 = new QChart();
    QChart* chart2 = new QChart();
    QChart* chart3 = new QChart();
    QChart* chart4 = new QChart();
    {
        QTimer* timer=new QTimer(chart1);
        timer->start(1000);
        QObject::connect(timer,timer->timeout,[&]
        {
            chart1->update();
            chart2->update();
            chart3->update();
            chart4->update();
        });
    }
 
    // PRICE
    if(auto* ch=chart1)
    {
        ch->setTitle("ACCUM. VOLUME");
        ch->legend()->setVisible(false);
        QLineSeries *series = new QLineSeries();
        //    QLineSeries *series1011 = new QLineSeries();
 
 
        for (i = last; i < lines-2; i++)
            series->append(i, price[i]);
 
        //    for (i = 0; i < BvolumeSOOALL.size(); i++)
        //        if(SvolumeSOOALL[i] > 65)
        //        series1011->append(i, price[i]);
 
 
 
 
        ch->addSeries(series);
        //    chart->addSeries(series1011);
 
 
 
        ch->setGeometry(-210, -80, 1400, 250);
        ch->createDefaultAxes();
        ch->setBackgroundVisible(true);
        ch->setBackgroundPen(QPen(Qt::lightGray));
        ch->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
        scene.addItem(ch);
    }
 
 
 
    //"MIDLE QTY"
    if(auto* ch=chart2)
    {
        ch->setTitle(" SHOW HOW MUCH VOLUME FOR ONE QTY CHANGE IN TIME (FOR BUY AND SELL)");
        ch->legend()->setVisible(false);
        QLineSeries *series22 = new QLineSeries();
        QLineSeries *series21 = new QLineSeries();
 
        for (i = last; i < MBVolumeGeneral.size(); i++)
            series22->append(i, MBVolumeGeneral[i]);
        for (i = last; i < MSVolumeGeneral.size(); i++)
            series21->append(i, MSVolumeGeneral[i]);
 
 
        ch->addSeries(series22);
        ch->addSeries(series21);
 
        ch->setGeometry(-220, 155, 1420, 250); // the method of QGraphicsWidget, move && resize
        ch->createDefaultAxes();
        ch->setBackgroundVisible(true);
        ch->setBackgroundPen(QPen(Qt::lightGray)); // the frame
        ch->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
        scene.addItem(ch);
    }
 
    //BUY&SELL from ALL VOLUME
    if(auto* ch=chart3)
    {
        ch->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM FROM ALL VOLUME ");
        ch->legend()->setVisible(false);
        QLineSeries *series23 = new QLineSeries();
        QLineSeries *series24 = new QLineSeries();
        QLineSeries *series245 = new QLineSeries();
        QLineSeries *series246 = new QLineSeries();
        QLineSeries *series247 = new QLineSeries();
 
 
 
 
 
 
        for (i = last; i < BvolumeSOO.size(); i++)
            if(BvolumeSOO[i] != 0)
                series23->append(i, BvolumeSOO[i]);
        for (i = last; i < SvolumeSOO.size(); i++)
            if(SvolumeSOO[i] != 0)
                series24->append(i, SvolumeSOO[i]);
        for (i = last; i < BvolumeSOO.size(); i++)
            series245->append(i, 50);
        for (i = last; i < BvolumeSOO.size(); i++)
            series246->append(i, 65);
        for (i = last; i < BvolumeSOO.size(); i++)
            series247->append(i, 35);
 
 
 
 
 
        ch->addSeries(series23);
        ch->addSeries(series24);
        ch->addSeries(series245);
        ch->addSeries(series246);
        ch->addSeries(series247);
 
 
 
 
 
 
        ch->setGeometry(-220, 370, 1420, 250); // the method of QGraphicsWidget, move && resize
        ch->createDefaultAxes();
        ch->setBackgroundVisible(true);
        ch->setBackgroundPen(QPen(Qt::lightGray)); // the frame
        ch->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
        scene.addItem(ch);
    }
 
 
    //"BIG VOLUME"
    if(auto* ch=chart4)
    {
        ch->setTitle("SHOW % FOR BUY(SELL) VOLUME SUMM BIG FROM ALL BIG VOLUME");
        ch->legend()->setVisible(false);
        QLineSeries *series25 = new QLineSeries();
        QLineSeries *series26 = new QLineSeries();
        QLineSeries *series265 = new QLineSeries();
        QLineSeries *series266 = new QLineSeries();
        QLineSeries *series267 = new QLineSeries();
 
 
 
 
 
 
        for (i = last; i < BvolumeSOOALL.size(); i++)
            if(BvolumeSOOALL[i] != 0)
                series25->append(i, BvolumeSOOALL[i]);
        for (i = last; i < SvolumeSOOALL.size(); i++)
            if(SvolumeSOOALL[i] != 0)
                series26->append(i, SvolumeSOOALL[i]);
        for (i = last; i < BvolumeSOOALL.size(); i++)
            series265->append(i, 50);
        for (i = last; i < BvolumeSOOALL.size(); i++)
            series266->append(i, 65);
        for (i = last; i < BvolumeSOOALL.size(); i++)
            series267->append(i, 35);
 
 
 
 
        ch->addSeries(series25);
        ch->addSeries(series26);
        ch->addSeries(series265);
        ch->addSeries(series266);
        ch->addSeries(series267);
 
 
 
 
 
        ch->setGeometry(-220, 570, 1420, 250); // the method of QGraphicsWidget, move && resize
        ch->createDefaultAxes();
        ch->setBackgroundVisible(true);
        ch->setBackgroundPen(QPen(Qt::lightGray)); // the frame
        ch->setBackgroundBrush(QBrush(QColor(240, 240, 240)));
        scene.addItem(ch);
    }
 
    view.show();
 
    return a.exec();
}
1
0 / 0 / 0
Регистрация: 22.05.2020
Сообщений: 8
22.05.2020, 11:07  [ТС] 15
Алексей1153, Спасибо!)Очень помог)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2020, 11:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как обновить GridView после изменения SELECT в SqlDataSource?
Здравствуйте. Работаю с компонентом GridView, связанным с SQLDataSource. В SQLDataSource свойство...

Как обновить dataset после изменения структуры базы данных сервере sql
Здравствуйте, пишу приложение на c#. Подключаюсь к базе данных через сервер ms sql. Допустим есть...

Как обновить информациию в файле после вычисления?
Задание: У компании есть “Мастер (Главный) файл” для хранения записей продавцов, которая...

Вывести на экран дисплея график функции y=( x), в заданном диапозоне изменения аргумента x от a до b с числом точек графика n. Ширину поля графика и
Помогите с примером, заранее благодарен) Вывести на экран дисплея график функции y=( x), в заданном...

Как в Excel отключить автоматическое обновление листа после каждого изменения?
Kak (i gde) v Excele otklu4it' avtomati4eskoje obnovlenije lista posle kaschdogo izmenenija? T.e.,...

Не могу обновить RecyclerView после изменения item
данные для списка берутся из Firebase, у DatabaseReference//Firebase, есть два метода: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.