Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426

Как ввести код через виджет и выполнять измененные методы?

01.12.2017, 10:39. Показов 1354. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Можно ли в QT вводить код через виджет и выполнять измененные методы?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2017, 10:39
Ответы с готовыми решениями:

Написать код, методы которого будут выполнять определенные этапы задания
Дана матрица размером m*n. Вывести на экран матрицу и есть ли одинаковые количество положительных и отрицательных чисел в столбике - true,...

Как выполнять методы в определенной последовательности?
Здравствуйте. Подскажите, к примеру нужно сделать валидацию, и есть несколько правил в массиве (которые МОГУТ быть в разных...

Как выполнять код в потоке?
Читал о потоках, регулярно использую их в своей программе. Пока использую только один поток. Поэтому всё ниженаписанное только об одном...

19
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2017, 10:50
Что за код?
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 10:57  [ТС]
У меня есть функция, которая обсчитывает нужным мне образом массивы и выводит результат. Она лежит в отдельном файле срр. В процессе работы программы мне нужно изменять код функции и продолжать расчеты.

Добавлено через 4 минуты
выглядит примерно так
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
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
void MainWindow::StrategyCod() //код стратегии
{
  for (int NMA=5;NMA<1000;NMA=NMA+50)//3-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  {
      //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      int NOpenPosition=0; //число открытых позиций
      double Profit=0;
      double PriceEnter,PriceExit; //цена входа и выхода
      QDate DateOpenPosition; //Дата открытия позиции
      //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    //int NMA=20;//период ma
    QVector<double> SMA(NBar); //ma
    for(long long bar = NMA; bar <NBar; bar++) //ma
    {
        double Summa=0;//summa
        for(long long i=bar-NMA;i<bar;i++)//summa
        {
            Summa=Summa+Close[i];
        }
        SMA[bar]=Summa/NMA;
    }
 
 
    for(long long bar = NMA; bar <NBar; bar++)//основной цикл
    {
     if (NOpenPosition!=0)//2-------------------------------------------------------------------------------------------------------------------------------------------------------
         {
             if ((Close[bar-1]<SMA[bar-1])&&(Close[bar]>SMA[bar]))
             {
                 PriceExit=Close[bar]-qrand()%MaxSlippage; //цена закрытия позиции
                 if (PriceEnter>High[bar]){PriceEnter=High[bar];}
                 if (PriceEnter<Low[bar]){PriceEnter=Low[bar];}
                 NOpenPosition=NOpenPosition-1;
                 Profit=PriceEnter-PriceExit-Commission;
             }
         }
     else//1--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         {
             if ((Close[bar-1]>SMA[bar-1])&&(Close[bar]<SMA[bar]))
             {
                 PriceEnter=Close[bar]+qrand()%MaxSlippage; //цена открытия позиции  //покупка
                 if (PriceEnter>High[bar]){PriceEnter=High[bar];}
                 if (PriceEnter<Low[bar]){PriceEnter=Low[bar];}
                 NOpenPosition=NOpenPosition+1;
                 DateOpenPosition=Date[bar];
             }
         }
     //1---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    }//2------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
qDebug()<<NMA;
qDebug()<<Profit;
qDebug()<<QDateTime::currentDateTime();
  }//3------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
}
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2017, 10:59
Ты, похоже, плохо понимаешь как всё работает. Программа твоя компилируется в машинный код. Там уже нет никаких cpp.
Да и зачем это нужно? Сразу алгоритм разрабатывай под все случаи.
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 11:45  [ТС]
Под все не выйдет. Его нужно менять со временем. На си шарпе есть подобные программы. По этому мне кажется решить эту задачу реально. Просто пока не знаю как.

Добавлено через 37 минут
Может быть можно обновлять метод?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2017, 11:49
Тогда бери какой-то сценарный язык и прикручивай к программе.

Добавлено через 12 секунд
Цитата Сообщение от Михаиллллллл Посмотреть сообщение
На си шарпе есть подобные программы
Подробнее.
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 11:55  [ТС]
Так ведь C# и С++ схожи. И там, и там я не знаю как это сделать.
Пример программы wealth-lab, вот рисунок с графиком вот. А Вот рисунок с кодом вот. Меняется код и за ним меняется расчет и график.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2017, 12:26
При чём тут эти графики и Паскаль? Покажи, где в C# программа способная выполнять некомпилированную функцию.
0
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
01.12.2017, 12:39
Цитата Сообщение от Михаиллллллл Посмотреть сообщение
Так ведь C# и С++ схожи.
Польский и английский оба на латинице.

Михаиллллллл, если не боишься жёсткого секса в самых нетривиальных позициях, можешь описать все нужные функции в виде слотов и дёргать их через QMetaObject::invokeMethod(). Поверь, после этой херни на pornohub тебе делать будет уже нечего.

Добавлено через 1 минуту
Михаиллллллл, отдельно замечу, я не собираюсь описывать это и помогать в этом. Это полнейшее дерьмо, которое должно оставаться в недрах Qt

Добавлено через 54 секунды
Но есть QtQuick, можешь писать свои методы на js
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
01.12.2017, 12:43  [ТС]
Не возможно описать все функции, т.к. их еще нет, они не придуманы. По мере их появления и нужно менять код.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,282
02.12.2017, 09:01
Вставляешь текстэдит в программу, пишешь в это окошко свои только что свежепридуманные формулы, программа анализирует то, что ты там наваял, проводит соответствующие вычисления, и выдаёт тебе результат в виде графика или что там нужно. Это что-то вроде своего упрощенного компилятора. Qt же понимает, когда ты пишешь что-то типо "Х = 2А + 3В". И твоя прога должна в этом разобраться, и выполнить соответствующие вычисления.

Вот эту сложную программу, которая анализирует и вычисляет - тебе нужно написать самому. Ручками. Готовое решение на все случаи жизни ты вряд-ли найдёшь.

P.S. Сразу предупреждаю, многа потоков для этого не нужно...
1
02.12.2017, 09:31

Не по теме:

Цитата Сообщение от alexu_007 Посмотреть сообщение
Сразу предупреждаю, многа потоков для этого не нужно
:D Смешно.

0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 16:58  [ТС]
А можно присобачить QT или VS как компилятор, а не писать свой?.К примеру я пропишу в текстэдит функцию
C++ (Qt)
1
void A12(double q1) {qDebug()<<q1;}
Как после этого этот текст использовать как код?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.12.2017, 17:16
Qt не компилятор. Нельзя.
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 17:18  [ТС]
но ведь VS компилятор. его можно по идее использовать?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.12.2017, 17:24
Если хочешь использовать компилятор, то и компилируй всю программу с изменениями.
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 17:28  [ТС]
Не вариант, долго читается файл с векторами. Удобней вносить изменения в код и быстро просчитывать и после опять вносить изменения в код. Нужно сделать именно так. Ведь как то же можно подключить VS как компилятор.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.12.2017, 18:03
Лучший ответ Сообщение было отмечено Михаиллллллл как решение

Решение

Ты понимаешь, что нельзя скомпилировать пол программы? Можешь сделать dll со своей функцией.
0
 Аватар для Михаиллллллл
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
02.12.2017, 18:06  [ТС]
А как потом подключать его когда нужно и перезагружать после обновления?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.12.2017, 18:11
Ну там же есть способ загрузки dll программно - QLibrary.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.12.2017, 18:11
Помогаю со студенческими работами здесь

Как выполнять код в фоновом потоке?
Так. Написал я код а форма при выполнении лагает(виснет до завершения). Погуглил и нашол что нужно код выполнять в другом потоке или...

Как выполнять код javascript в браузере покомандно?
В частности, в браузерах Firefox 24, Firefox 36 с Firebug. Т.е. я знаю, что можно вставлять точки останова. Но, если кода много, не...

Как выполнять некий код каждый раз, как открывается какой-либо документ?
Сабж?

Как при открытии .jpg выполнять php код
Здравствуйте! Столкнулся с задачей, которую пока не в силах решить своими знаниями. Дано: - файл PHP расположенный в путь...

Как выполнять JavaScript через интервал времени
Доброго времени суток друзья. Есть код: &lt;script type=&quot;text/javascript&quot;&gt; $(document).ready(function () { var n =...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru