М
Миша24 октября 2017 г. 9:22

График qcustomplot, перенос данных из файла в файл, особенности графика и массивов.

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 для корректной работы.
MyCandleSrick_1006.rar
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

35
М
  • 24 октября 2017 г. 9:53

4. Можно ли этот график строить по номерам свечек, и уже к ним присваивать дату?

    Evgenii Legotckoi
    • 24 октября 2017 г. 15:26

    1. Создайте метод для установки переменных или того же самого вектора в класс MainWindow.

    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
        void setSomeVariable(QVector<double>& someVector);
    private slots:
        void makePlot();
    
    private:
        Ui::MainWindow *ui;
    };
    И используйте эту переменную
    MainWindow w;
    w.setSomeVariable(Date);
    w.show();

    2. Не задавайте конкретный размер векторам, если в этом нет необходимости, с векторами можно работать и без задания конкретного размера. Если Вы зададите конкретный размер, то весь вектор будет инициализирован нулями.

    3. binSize - регулирует ширину, влияет на размер графиков. Вектора лучше объединять в один и заново устанавливать.

    4. А зачем? Обычно по датам строят, а свечки как бы привязаны к индексу в векторе в каком-то смысле.
      М
      • 25 октября 2017 г. 4:06
      1. Не совсем понял, скажите пожалуйста как передать переменную int A1=5; и массив  double*Open1= new double ;
          Open1[0]=18; Open1[1]=22; Open1[2]=16; Open1[3]=20; Open1[4]=18; Open1[5]=22; Open1[6]=16; Open1[7]=20;
      2. Сделал так  QVector<double>*Open1= new QVector<double>;
          Open1[0]=18; Open1[1]=22; Open1[2]=16; Open1[3]=20; Open1[4]=18; Open1[5]=22; Open1[6]=16; Open1[7]=20;
      Но код не работает, хотя в другом месте кода работает
      QVector<double> Date[n1],Time(n1), Open(n1), Close(n1),High(n1),Low(n1),Volume(n1);
      Open[0]=18; Open[1]=22; Open[2]=16; Open[3]=20; Open[4]=18; Open[5]=22; Open[6]=16; Open[7]=20;
      Скажите пожалуйста, почему не работает?
      3. Объясните пожалуйста зависимость количества значений, участвующих в построении одной свечи от величины binSize. При значении 1 использует 1 значение, но при том что в массиве 8 значений, график строится только по 7. При 2 кажется что использует 2 значения, но строит также по 7 точкам из 8,  При 3 строит по 3 точкам и использует 8 значений из 8. А при 4 Происходит непонятно что, При binSize =5 строит наконец 2 свечки но не по понятному алгоритму, и свечи получаются не одинаковые, хотя по значениям должны выйти одинаковыми. Скажите пожалуйста как строить по 4 значениям одну свечку?
      4. Свечи прономерованны, но при этом бывает разброс в датах, потому нужно привязать ось Х к номеру, есть ли такая возможность?
        М
        • 25 октября 2017 г. 5:33

        3.4. решил так //candlesticks->data()->set(QCPFinancial::timeSeriesToOhlc(time, Open, binSize, startTime)); //ввод значений графика

            bool  alreadySorted = false;
            candlesticks->QCPFinancial::setData ( bar, Open, High, Low,Close,  alreadySorted );
        Осталось понять как сделать счетчик графика объемов не по дате, а по номеру
          М
          • 25 октября 2017 г. 6:52

          С графиком объемов решилось также.  Помогите пожалуйста с вопросами 1 и 2.

            Evgenii Legotckoi
            • 25 октября 2017 г. 7:25

            1. Чтобы что-то передать, установить, добавить в класс можно воспользоваться добавлением метода, я уже показывал пример кода, просто напишите метод с соответствующей сигнатурой и реализацией.

            void setSomeVariables(int A1, QVector<double>* someDouble);
            2. используйте метод append(), всё равно по порядку всё делаете.
            Open1->append(18); 
            Open1->append(22); 
            Open1->append(16); 
            Open1->append(20); 
            Open1->append(18); 
              М
              • 26 октября 2017 г. 4:33
              • (ред.)
              1. Сделал так:
              mainwindow.h:
              
              #ifndef MAINWINDOW_H
              #define MAINWINDOW_H
              #include <QMainWindow>
              namespace Ui {
              class MainWindow;
              }
              class MainWindow : public QMainWindow
              {
                  Q_OBJECT
              public:
                  explicit MainWindow(QWidget *parent = 0);
                  ~MainWindow();
                  void setSomeVariable(__int64 n1 );  //переменные, переносимые в разные файлы
              private slots:
                  void makePlot();
              
              private:
                  Ui::MainWindow *ui;
              };
              #endif // MAINWINDOW_H
              
              main.cpp :
              #include "mainwindow.h"
              #include <QApplication>
              #include <cstdlib>
              __int64 n1=500;
              int main(int argc, char *argv[])
              {
                  QApplication a(argc, argv);
                  MainWindow w;
                  //w.setSomeVariable(Date);
                  w.setSomeVariable(n1);
                  w.show();
                  return a.exec();
              }

              Выдает ошибку undefined reference to `MainWindow::setSomeVariable(long long)' , скажите пожалуйста как это исправить и передать переменную n1 из mainw.cpp в mainwindow.cpp

              2. Спасибо, так работает. Но почему иногда срабатывает Open[0]=18; , а иногда не срабатывает?
               
              5. При задании счетчика свечек __int64 n1 =8 000 000 выдает Segmentation fault, скажите пожалуйста в чем ошибка и как ее исправить. Может ли это быть из за того , что rand() перестает выдавать данные?
                Evgenii Legotckoi
                • 26 октября 2017 г. 6:29

                1. Вы написали реализацию этого setSomeVariable метода? В файле mainwindow.cpp?

                2. Скорее всего ошибка ситуативная, просто имеете некоторую ошибку в коде.
                5. Нужно смотреть дебаггером, где вылетает Segmentation fault. Зачастую это ошибка возникает тогда, когда идёт обращение к неинициализованной области памяти.

                И не используйте без явной нужды нестандартные определения типов.
                __int64 - это чисто мелкософтовский typedef, который не является стандартом C++.
                Если так сильно хочет использовать typdef`ы, вместо того, чтобы написать long long int или long int, то используйте тогда то, что является стандартом C++. То есть в данном конкретном случае используйте int64_t
                  М
                  • 26 октября 2017 г. 8:35

                  1. Нет, не знаю как написать. Объясните пожалуйста, этот момент  плохо понимаю.

                  2. Вы правы, перепутал [] и ().
                  6. Скажите пожалуйста, как указать количество свечек, которые отображаются в экране при загрузке скрипта.
                  7. Скажите пожалуйста, как сделать автомсштабируемость (одинаковое расстояние от верхней точки до верха и нижней до низа , из тех, что видны в данный момент на графике ) при прокрутке графика по оси У.
                  8.  Скажите пожалуйста, как на графике в номере свечки bar указать дату и время Date and Time/
                  https://cloud.mail.ru/public/FUxM/b4NFJCb9w
                    Evgenii Legotckoi
                    • 27 октября 2017 г. 5:02

                    1. Вам бы сначала базовые знания подтянуть по программированию на C++, а потом уже графиками заниматься. А то это минимальные основы, без которых нельзя заниматься программированием, а Вы сразу за подключение сторонней библиотеки в фрейморвке взялись, да ещё и колупаете пример с графиками японских свечей, которые используются-то только в биржевых терминалах. Почитайте статьи из раздела по C++ . А также какую-нибудь учебную литературу таких авторов как Прата, Лафоре, Страуструп.


                    Что касается конкретно вышего вопроса, то посмотрите в mainwindow.cpp и mainwindow.h метод makePlot().
                    Так вот... в заголовочном файле mainwindow.h есть объявление этого метода makePlot() , а в файле mainwindow.cpp уже дана реализация этого метода. Тоже самое сделайте и для метода setSomeVariable.

                    6. Нет в C++ скрипта, в каком значении Вы это применяете.... это компилируемый язык, а не интерпретируемый. И информация передаётся не между файлами, а между объектами классов.
                    Там не через количество свечек указывается, а через масштабирование по осям. Через метод scaleRange. Можно посчитать максимальный и минимальный диапазоны и отталкиваться от них.
                    7. Аналогично, через scaleRange, но по Оси Y.
                    8. ui->customPlot->xAxis->setTickLabels(true);
                      М
                      • 27 октября 2017 г. 9:33

                      1. Да, я увидел как makePlot() реализовано в mainwindow.cpp , но все же не понял как взять значения из main.cpp. Объясните пожалуйста как это написать? может быть нужно использовать return или делать ссылку на место хранение информации?
                      7. ui->customPlot->yAxis->QCPAxis::scaleRange( 2);- Делает масштаб больше или меньше при первой загрузке,  но при прокручивании графика масштаб не подстраивается под новые максимумы и минимумы.  ui->customPlot->yAxis->QCPAxis::scaleRange( 1,5); - Масштабирует относительно лишь выбранного элемента. Скажите пожалуйста, как сделать  автоматическое масштабирование относительно локальных максимума и минимума?
                      8. Но как присвоить для оси x каждому  элементу массива bar соответсвующий элемент массива Date и массива Time?
                        М
                        • 27 октября 2017 г. 11:28

                        7. Может быть поможет:

                        void QCPAbstractPlottable :: rescaleValueAxis ( )
                        или что то в этом роде? И скажите пожалуйста, как это записать.  ui->customPlot-> rescaleValueAxis (); выдает ошибку.
                          Evgenii Legotckoi
                          • 28 октября 2017 г. 7:04

                          1. Если Вам нужно передать в объект класса некоторую информацию и хранить её там, то нужно объявить переменную в объявлении этого класса, посмотрите в этой статье, как формируется класс в С++ .

                          2. Чтобы перемасштабировать график при скроллинге, нужно получить событие изменения размера или какого либо действия над виджетом графика. Но для этого нужно наследоваться от класса QCustomPlot и переопределить метод wheelEvent.
                          Но вся проблема в том, что Вы даже не знаете как объявить метод и написать реализацию, не говоря уже о том, чтобы наследоваться от другого класса.

                          Есть конечно вариант, что я всё напишу за вас. Только какой смысл? Если Вы всё равно ничего не поймёте.

                          Поэтому вот в этой статье есть пример наследования и переопределения метода mousePressEvent для QGraphicsItem . Делается аналогично и для wheelEvent, который сообщает о прокрутке колёсика мыши. Как только срабатывает wheelEvent, тогда и нужно делать перемасштабирование и перерисовку.

                          Давайте Вы разберётесь для начала с основами самого языка. Серьёзно, в противном случае это будет бесполезной тратой времени.
                            М
                            • 30 октября 2017 г. 7:41

                            Спасибо прочел классы. Но вопросы остались примерно теми же.

                            1. Скажите пожалуйста, как вызвать в файле mainwindow.cpp  объект w класса MainWindow, объявленного в файле  main.cpp
                            https://cloud.mail.ru/public/FUxM/b4NFJCb9w

                              М
                              • 30 октября 2017 г. 10:34

                              И еще загвоздка в том, что не совсем понятно взаимодействие классов и методов qcustomplot.

                              7. ui->customPlot->QCustomPlot :: wheelEvent() как я понял это функция должна реагировать на прокрутку колесика, не совсем понятно какое значение нужно ставить в скобки. Объясните пожалуйста?
                                Evgenii Legotckoi
                                • 30 октября 2017 г. 13:54

                                Как бы Вам объяснить.... внутри класса MainWindow, который объявлен в файле mainwindow.cpp, поэтому внутри методов класса MainWindow можно вызывать сразу метод... Вот как там вызывается метод makePlot(); , также можно вызывать любые методы..., только смысла нет в вызове метода через указание имени класса. Метод же не статический...

                                  Evgenii Legotckoi
                                  • 30 октября 2017 г. 13:55

                                  Переопределение метода не равно его вызову... Я вам кидал ссылку на статью по работе с QGrapihcsItem, где есть наследование и переопределение методов. Вам необходимо наследоваться от класса QCustomPlot и переопределить метод wheelEvent.

                                    М
                                    • 31 октября 2017 г. 3:43
                                    • (ред.)

                                    Я Вас не совсем понимаю. Я метод прописал в mainwindow.h. Мог этот метод прописать и в другом файле. Но это не влияет на его работоспособность, а как я понял так делают тля улучшения читаемости кода.  Вы сначала предложили объекту w присвоить передаваемое значение. Оно у него есть. Но как к нему обратиться из другого файла?

                                    Также не помогает прописывать extern MainWindow w ; в других файлах.

                                      Evgenii Legotckoi
                                      • 31 октября 2017 г. 4:50

                                      Напишите метод геттер для получения этого значения. значение возвращается через оператор return. Естественно с объявлением и реализацией для класса MainWindow.

                                      double getDouble()
                                      {
                                          return 12.5;
                                      }
                                      И опять повторяю, не используйте понятие файла относительно программирования на C++, здесь есть классы и объекты. Пока вы не поймёте, что файл в котором написан код и класс с объектом - это абсолютно разные сущности, у вас ничего не получится.
                                      В файле Вы пишите описание класса. В заголовочном файле его объявление, в файле исходных кодов его реализацию.
                                      Чтобы обратиться к какому либо объекту в другом месте кода, то есть в другом классе, нужно иметь инстанс этого класса, ссылку на него или указатель.
                                      extern MainWindow w вам не поможет поскольку вы применяете его явно не по назначению. Тем более не ясно в каком именно классе вы хотите его применить.
                                      В том, что Вы вызываете makePlot внутри класса MainWindow через указание того к каком классу относится метод, то есть так:
                                      MainWindow::makePlot() абсолютно не добавляет никакой читаемости кода, а только засоряет его лишней информацией. Так пишут вызовы методов только в следующих случаях:
                                      • Вызов метода базового класса в переопределённом методе
                                      • Вызов метода одного из базовых классов при множественном наследовании и наличии в обоих базовых классах методов с одинаковыми названиями, тогда нужно явно указать какой именно метод вызывается.
                                      • Вызов статического метода класса
                                      А то что вы это добавили, это лишняя информация. Всем и так понятно будет, откуда ноги растут у метода. Тем более, что при вызове большого количества методов класса от имени класса в глазах рябить будет. Такой код - плохой.

                                        М
                                        • 31 октября 2017 г. 4:50

                                        Но ведь метод wheelEvent  принадлежит классу QCustomPlot
                                        http://www.qcustomplot.com/documentation/classQCustomPlot.html#a7b8bd7e8d3a1d23a8595e9c6a6b76ef1

                                          Evgenii Legotckoi
                                          • 31 октября 2017 г. 4:53

                                          И что Вы этим хотели сказать? Я знаю что он принадлежит этому методу.

                                          Я уже  дважды сказал - НАСЛЕДОВАТЬСЯ от QCustomPlot и переопределить этот метод. Статью выше привёл, где есть пример наследования и переопределения метода. Изучайте.
                                          При наследовании и переопределении метода можно изменить поведение класса.
                                            М
                                            • 31 октября 2017 г. 4:59

                                            я описал гет функцию. но как вернуть значение w в другом файле? как обратиться к w?

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

                                              Evgenii Legotckoi
                                              • 31 октября 2017 г. 5:04

                                              Да с чего вы решили, что он должен работать так, как вы этого хотите? Он всего лишь делает скролинг, и в него передаётся поворот колёсика мыши. Данный метод вызывается автоматически в стеке вызовов событий виджетов Qt, обычно эти методы вообще никогда не вызывают принудительно. Они вызываются сами. Это методы событий, которые отслеживаются приложением Qt. Поэтому эти методы переопределяют, чтобы добавить специальноен помедение. В вашем случае отслеживание находящихся на графике свечек для автоматического ресайза по вертикали.


                                              Обращаться в других классах и объектах так же, как вызывали сет функцию.
                                                М
                                                • 31 октября 2017 г. 5:13

                                                в main.cpp все работает :

                                                #include <QApplication>
                                                #include <cstdlib>
                                                
                                                
                                                long long n2=3;
                                                
                                                int main(int argc, char *argv[])
                                                
                                                {
                                                
                                                    QApplication a(argc, argv);
                                                    MainWindow w;
                                                    VarsHolder::GetHolder()->SetA(n2); //попытка передать данные
                                                    w.setCandleDate(n2);  //попытка передать данные
                                                    n2=w.getCandleDate();
                                                    w.show();
                                                    return a.exec();
                                                }
                                                а при вызове в mainwindow.cpp говорит :  ошибка: неопределенная ссылка на ' w `
                                                n1=w.getCandleDate();
                                                  Evgenii Legotckoi
                                                  • 31 октября 2017 г. 5:20

                                                  Наверное потому, что у вас нет этой ссылки в mainwindow.cpp. Всё правильно говорит. И extern тут не поможет. не пробовали вызывать метод без w. ?

                                                    М
                                                    • 31 октября 2017 г. 5:40

                                                    если делать так n1=getCandleDate (); то вылетает проект. Если делать #include "main.cpp", тоже выдает ошибки.Скажите пожалуйста, как же сделать ссылку на w?

                                                      Evgenii Legotckoi
                                                      • 31 октября 2017 г. 5:41

                                                      n1=getCandleDate(); - в каком месте кода вы это применяете?

                                                        М
                                                        • 31 октября 2017 г. 5:44
                                                        void MainWindow::makePlot()
                                                        {
                                                            long long n1=8;
                                                           // n1=getCandleDate(); 
                                                        
                                                          М
                                                          • 31 октября 2017 г. 5:45
                                                          long long n1=8;
                                                           n1=getCandleDate();
                                                          void MainWindow::makePlot()
                                                          
                                                            Evgenii Legotckoi
                                                            • 31 октября 2017 г. 5:56
                                                            • (ред.)

                                                            Ну и что это значит? Вызываете метод класса MainWindow в файле mainwindow.cpp за пределами класса MainWindow.
                                                            При этом думаете, что если увязать файлы через какой-нибудь extern с ссылкой на объект MainWindow , то всё должно видеться?

                                                            При этом переменная Mainwindow объявлена локально внутри функции main...

                                                            Вы вообще не понимаете, что делаете, и не пытаетесь понять. Вам следует взять какой-нибудь учебник по самым основам C++ и читать его от корки до корки. Всё равно Вы не слушаете, что я Вам говорю.
                                                              М
                                                              • 31 октября 2017 г. 6:16

                                                              В том то и беда что в учебниках таких примеров не нашел, потому и спрашиваю вас. Но вы к сожалению так и не сказали рабочего варианта((

                                                                Evgenii Legotckoi
                                                                • 31 октября 2017 г. 6:21

                                                                Проблема не в том, что я не написал вам рабочего варианта, а в том, что Вы не понимаете самых минимальных основ, которые есть во всех учебниках. Так что не перекладывайте свои проблемы с обучением на меня.
                                                                Даже в тех 11 статьях которые есть на сайте уже есть примеры с методами, областями видимости и перечислениями. Также есть тесты. Я предлагал Вам довольно прозрачные и разжёванные статьи. Возможно, программирование просто не про Вас.

                                                                  М
                                                                  • 31 октября 2017 г. 6:39
                                                                  • (ред.)

                                                                  Согласен,  программирование не для меня, но приходиться заниматься и этим.

                                                                  http://cppstudio.com/post/439/ тут нашел самое детальное описание классов. И там описываются варианты вызова метода класса.  Все варианты происходят через объект класса. И собственно у разных объектов разное значение  переменных. Отсюда следует что мне нужно узнать, как сделать ссылку на нужный мне объект класса. Об этом я вас прошу 2 дня, но вы почему-то не отвечаете на четкий вопрос. Если бы вы добавили детальность вашим статья, по типу ссылки, то было-бы замечательно для всех.
                                                                    Evgenii Legotckoi
                                                                    • 31 октября 2017 г. 7:24

                                                                    Нет у вас никакого чёткого вопроса. Вы говорите, что сделали объект в файле main.cpp в функции main, и пытаетсь обратиться к этом объекту в файле mainwindow.cpp. Но класс этого объекта описан в этом самом файле mainwindow.cpp, если вы что-то хотите сделать с переменной переданной внутрь объекта, то и делайте это внутри объекта, а не внутри файла, то есть делайте внутри методов . Абсолютно не ясно в вашем вопросе, в каком конкретно методе или месте кода вы пытаетесь это сделать.

                                                                    Каждый раз Вы прикладываете абсолютно разные куски кода, которые не показывают никакого смысла ваших действий. Я уже ответил, не нужно использовать ссылку на w, чтобы вызвать этот метод, нужно просто написать этот метод и возвращаемое значение приравнять переменной (ВНУТРИ МЕТОДА в классе, а не в любом месте кода где вам заблагоросудится). Если Вы этого даже не хотите понимать, то это ваша проблема.

                                                                    Невозможно ответить на вопрос, который задан непонятно как.

                                                                    По поводу детальности, статья не о том, что такое класс, или метод, или ссылка. А о том, как подключить библиотеку и запустить её в проекте. Я не обязан описывать каждую мелкую деталь в статье, которая будет непонятна человеку с вашим уровнем подготовки, Вы взялись за то, до чего Вам ещё далеко. Также, писать за Вас ваш код никто не будет.
                                                                      М
                                                                      • 1 ноября 2017 г. 6:29

                                                                      Оказалось передача данных работала, просто построение графика вызывал раньше этой передачи.

                                                                      Оказывается функция
                                                                      void QCPFinancial :: getVisibleDataBounds ( QCPFinancialDataContainer :: const_iterator & начать ,
                                                                        QCPFinancialDataContainer :: const_iterator & конец
                                                                       )  Const
                                                                      строит только ту часть графика, что видна в окне. Скажите пожалуйста, как воспользоваться этой функцией? Как в контейнер ввсести данные именно видимой части графика? Или в контейнер нужно вводить все данные графика?
                                                                       
                                                                      Скажите пожалуйста почему не получается наследовать от QCPFinancial
                                                                      #ifndef AUTOSCALE_H
                                                                      #define AUTOSCALE_H
                                                                      #include <QMainWindow>
                                                                      #include "qcustomplot.h"
                                                                      
                                                                      class AutoScale :public QCustomPlot//, public QCPFinancial//, public QCPAxis
                                                                      {
                                                                      public:
                                                                          AutoScale();
                                                                          void AllEvent(double);
                                                                      
                                                                      //private:
                                                                        //  double DateScale;
                                                                      };
                                                                      
                                                                      #endif // AUTOSCALE_H

                                                                       

                                                                        Комментарии

                                                                        Только авторизованные пользователи могут публиковать комментарии.
                                                                        Пожалуйста, авторизуйтесь или зарегистрируйтесь
                                                                        B

                                                                        C++ - Тест 002. Константы

                                                                        • Результат:16баллов,
                                                                        • Очки рейтинга-10
                                                                        B

                                                                        C++ - Тест 001. Первая программа и типы данных

                                                                        • Результат:46баллов,
                                                                        • Очки рейтинга-6
                                                                        FL

                                                                        C++ - Тест 006. Перечисления

                                                                        • Результат:80баллов,
                                                                        • Очки рейтинга4
                                                                        Последние комментарии
                                                                        k
                                                                        kmssr9 февраля 2024 г. 5:43
                                                                        Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                                                        АК
                                                                        Анатолий Кононенко5 февраля 2024 г. 12:50
                                                                        Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                                                        EVA
                                                                        EVA25 декабря 2023 г. 21:30
                                                                        Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                                                        J
                                                                        JonnyJo25 декабря 2023 г. 19:38
                                                                        Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                                                        G
                                                                        Gvozdik19 декабря 2023 г. 8:01
                                                                        Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                                                        Сейчас обсуждают на форуме
                                                                        P
                                                                        Pisych27 февраля 2023 г. 15:04
                                                                        Как получить в массив значения из связанной модели? Спасибо, разобрался:))
                                                                        AC
                                                                        Alexandru Codreanu19 января 2024 г. 22:57
                                                                        QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
                                                                        BlinCT
                                                                        BlinCT27 декабря 2023 г. 19:57
                                                                        Растягивать Image на парент по высоте Ну и само собою дял включения scrollbar надо чтобы был Flickable. Так что выходит как то так Flickable{ id: root anchors.fill: parent clip: true property url linkFile p…
                                                                        Дмитрий
                                                                        Дмитрий10 января 2024 г. 15:18
                                                                        Qt Creator загружает всю оперативную память Проблема решена. Удалось разобраться с помощью утилиты strace. Запустил ее: strace ./qtcreator Начал выводиться весь лог работы креатора. В один момент он начал считывать фай…
                                                                        Evgenii Legotckoi
                                                                        Evgenii Legotckoi12 декабря 2023 г. 17:48
                                                                        Побуквенное сравнение двух строк Добрый день. Там случайно не высылается этот сигнал textChanged ещё и при форматировани текста? Если решиать в лоб, то можно просто отключать сигнал/слотовое соединение внутри слота и …

                                                                        Следите за нами в социальных сетях