График qcustomplot, перенос данных из файла в файл, особенности графика и массивов.
Здравствуйте.
1. Как из main.cpp передать массив и переменную в mainwindow.cpp ?
2. После того, как задаю массив QVector<double > Open1[8]; , не могу присвоить Open1[0]=18; Open1[1]=22; Open1[2]=16; Open1[3]=20; Open1[4]=18; Open1[5]=22; Open1[6]=16; Open1[7]=20; , если же задаю массив double Open1[8]; , то не могу использовать его в функции timeSeriesToOhlc . Скажите пожалуйста, как работать с массивом QVector<double >.
3. Как я понял double binSize = 3600*2 регулирует сколько значений цены отражается на свече графика, как сделать так, чтобы на одной свече отражалось только 4 цены? Можно ли вводить цены не одним массивом, а четырьмя? Если нельзя, то как лучше преобразовывать 4 массива в 1 для корректной работы.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD
- Akiv Doros
- 11 ноября 2024 г. 22:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
m
- molni99
- 26 октября 2024 г. 8:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
m
- molni99
- 26 октября 2024 г. 8:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Последние комментарии
Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
EVILEG-CORE. Использование Google reCAPTCHA 2001; 98 29 34 priligy buy
PyQt5 - Урок 007. Работаем с QML QtQuick (Сигналы и слоты) priligy 30mg Am J Obstet Gynecol 171 1488 505
Django - Урок 003. Модель, шаблон и представление в Django Hair follicles are believed to produce approximately 20 individual hair shafts over the life of the follicle as the follicle progresses through cycles of hair production, shedding ejection, invo…
Сейчас обсуждают на форуме
добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderChe31 октября 2024 г. 22:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3 октября 2024 г. 11:05
4. Можно ли этот график строить по номерам свечек, и уже к ним присваивать дату?
1. Создайте метод для установки переменных или того же самого вектора в класс MainWindow.
4. А зачем? Обычно по датам строят, а свечки как бы привязаны к индексу в векторе в каком-то смысле.
3.4. решил так //candlesticks->data()->set(QCPFinancial::timeSeriesToOhlc(time, Open, binSize, startTime)); //ввод значений графика
Осталось понять как сделать счетчик графика объемов не по дате, а по номеруС графиком объемов решилось также. Помогите пожалуйста с вопросами 1 и 2.
1. Чтобы что-то передать, установить, добавить в класс можно воспользоваться добавлением метода, я уже показывал пример кода, просто напишите метод с соответствующей сигнатурой и реализацией.
Выдает ошибку undefined reference to `MainWindow::setSomeVariable(long long)' , скажите пожалуйста как это исправить и передать переменную n1 из mainw.cpp в mainwindow.cpp
1. Вы написали реализацию этого setSomeVariable метода? В файле mainwindow.cpp?
1. Нет, не знаю как написать. Объясните пожалуйста, этот момент плохо понимаю.
1. Вам бы сначала базовые знания подтянуть по программированию на C++, а потом уже графиками заниматься. А то это минимальные основы, без которых нельзя заниматься программированием, а Вы сразу за подключение сторонней библиотеки в фрейморвке взялись, да ещё и колупаете пример с графиками японских свечей, которые используются-то только в биржевых терминалах. Почитайте статьи из раздела по C++ . А также какую-нибудь учебную литературу таких авторов как Прата, Лафоре, Страуструп.
Что касается конкретно вышего вопроса, то посмотрите в mainwindow.cpp и mainwindow.h метод makePlot().
Там не через количество свечек указывается, а через масштабирование по осям. Через метод scaleRange. Можно посчитать максимальный и минимальный диапазоны и отталкиваться от них.
7. Может быть поможет:
1. Если Вам нужно передать в объект класса некоторую информацию и хранить её там, то нужно объявить переменную в объявлении этого класса, посмотрите в этой статье, как формируется класс в С++ .
Поэтому вот в этой статье есть пример наследования и переопределения метода mousePressEvent для QGraphicsItem . Делается аналогично и для wheelEvent, который сообщает о прокрутке колёсика мыши. Как только срабатывает wheelEvent, тогда и нужно делать перемасштабирование и перерисовку.
Спасибо прочел классы. Но вопросы остались примерно теми же.
И еще загвоздка в том, что не совсем понятно взаимодействие классов и методов qcustomplot.
Как бы Вам объяснить.... внутри класса MainWindow, который объявлен в файле mainwindow.cpp, поэтому внутри методов класса MainWindow можно вызывать сразу метод... Вот как там вызывается метод makePlot(); , также можно вызывать любые методы..., только смысла нет в вызове метода через указание имени класса. Метод же не статический...
Переопределение метода не равно его вызову... Я вам кидал ссылку на статью по работе с QGrapihcsItem, где есть наследование и переопределение методов. Вам необходимо наследоваться от класса QCustomPlot и переопределить метод wheelEvent.
Я Вас не совсем понимаю. Я метод прописал в mainwindow.h. Мог этот метод прописать и в другом файле. Но это не влияет на его работоспособность, а как я понял так делают тля улучшения читаемости кода. Вы сначала предложили объекту w присвоить передаваемое значение. Оно у него есть. Но как к нему обратиться из другого файла?
Также не помогает прописывать extern MainWindow w ; в других файлах.
Напишите метод геттер для получения этого значения. значение возвращается через оператор return. Естественно с объявлением и реализацией для класса MainWindow.
Чтобы обратиться к какому либо объекту в другом месте кода, то есть в другом классе, нужно иметь инстанс этого класса, ссылку на него или указатель.
Но ведь метод wheelEvent принадлежит классу QCustomPlot
http://www.qcustomplot.com/documentation/classQCustomPlot.html#a7b8bd7e8d3a1d23a8595e9c6a6b76ef1
И что Вы этим хотели сказать? Я знаю что он принадлежит этому методу.
я описал гет функцию. но как вернуть значение w в другом файле? как обратиться к w?
Да с чего вы решили, что он должен работать так, как вы этого хотите? Он всего лишь делает скролинг, и в него передаётся поворот колёсика мыши. Данный метод вызывается автоматически в стеке вызовов событий виджетов Qt, обычно эти методы вообще никогда не вызывают принудительно. Они вызываются сами. Это методы событий, которые отслеживаются приложением Qt. Поэтому эти методы переопределяют, чтобы добавить специальноен помедение. В вашем случае отслеживание находящихся на графике свечек для автоматического ресайза по вертикали.
в main.cpp все работает :
Наверное потому, что у вас нет этой ссылки в mainwindow.cpp. Всё правильно говорит. И extern тут не поможет. не пробовали вызывать метод без w. ?
если делать так n1=getCandleDate (); то вылетает проект. Если делать #include "main.cpp", тоже выдает ошибки.Скажите пожалуйста, как же сделать ссылку на w?
n1=getCandleDate(); - в каком месте кода вы это применяете?
Ну и что это значит? Вызываете метод класса MainWindow в файле mainwindow.cpp за пределами класса MainWindow.
При этом думаете, что если увязать файлы через какой-нибудь extern с ссылкой на объект MainWindow , то всё должно видеться?
В том то и беда что в учебниках таких примеров не нашел, потому и спрашиваю вас. Но вы к сожалению так и не сказали рабочего варианта((
Проблема не в том, что я не написал вам рабочего варианта, а в том, что Вы не понимаете самых минимальных основ, которые есть во всех учебниках. Так что не перекладывайте свои проблемы с обучением на меня.
Даже в тех 11 статьях которые есть на сайте уже есть примеры с методами, областями видимости и перечислениями. Также есть тесты. Я предлагал Вам довольно прозрачные и разжёванные статьи. Возможно, программирование просто не про Вас.
Согласен, программирование не для меня, но приходиться заниматься и этим.
Нет у вас никакого чёткого вопроса. Вы говорите, что сделали объект в файле main.cpp в функции main, и пытаетсь обратиться к этом объекту в файле mainwindow.cpp. Но класс этого объекта описан в этом самом файле mainwindow.cpp, если вы что-то хотите сделать с переменной переданной внутрь объекта, то и делайте это внутри объекта, а не внутри файла, то есть делайте внутри методов . Абсолютно не ясно в вашем вопросе, в каком конкретно методе или месте кода вы пытаетесь это сделать.
Оказалось передача данных работала, просто построение графика вызывал раньше этой передачи.