© EVILEG 2015-2018
Recommend hosting
Oct. 11, 2018, 6:04 p.m.

QtQt/C++ - Tutorial 084. How to run JavaScript code in a C ++ application using the example of working with two variables

Qt, QScriptEngine, QScriptValue, JavaScript, QScriptContext

Suppose you are faced with the task of executing JavaScript code in a C++ application. For example, there is a set of output data or variables whose names are known in advance, and there are pieces of JavaScript code that does something with these variables. And there is also an algorithm that, if there are any conditions, it will choose. which javascript code should be run.

Also, you can't just take and rewrite that JavaScript code into C++ code and hardcorely add it to the application. Since there are a lot of such pieces of code, at the same time other people are engaged in their maintenance and constantly add new pieces of code.

That is, in this case, the set of input data and JavaScript code for us is data, in some way the content that we launch using a certain algorithm, according to which we choose, under what conditions to choose one or another for the same set of input variables a piece of javascript code.

I hope that I clearly explained why we need to run the execution of JavaScript code in a C++ application.

I suggest to write an application that has two input fields for variable names, two input fields with input for the values of these variables in double format, in case of entering a value other than double data type, we will set the value to Undefined .

We will also add an TextEdit input field for writing JavaScript code that we will execute in our application.

And the last input field will be called Result (this will be TextEdit ), which will be responsible for the output of the new calculated values of the variables we entered.

Also add a QPushButton, which will run the execution of JavaScript code.

The application will look like the image below.

Oct. 10, 2018, 1:32 p.m.

C++C ++ - Does the #pragma once build speed up?

C++, once, pragma

Work on a large project allows in some cases to test some theories concerning a programming language.

It was always interesting if the build is really accelerated by using the #pragma once directive instead of the classic #ifndef #define #endif .

Check this acceleration on a small project is quite problematic, because if the project is going on average for 20 seconds, then we will most likely not see a tangible acceleration, because the assembly time will always float from 17 to 23 seconds.

But I had free time and managed to test this theory on a large project.

Oct. 9, 2018, 7:16 p.m.

QtQt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

Qt, DLL, dll, Windows, dynamic

The forum raised the question of how to create a dynamic library and correctly connect it to a third-party project. Periodically, such questions arise, so consider one option of creating a dynamic dll for Windows using the standard wizards in Qt Creator.

In this case, the option will not be considered when the project is divided into subprojects, which are compiled as libraries and then connected to the main project. Because it will be the dynamic internal libraries of the project. Let's create exactly the external library, which theoretically could be distributed in the form of binaries.

Create two projects:

  1. QuiLib - this will be an external dynamic library that will contain one dialog box. This dialog box will open in the main project.
  2. WithDynamicLibrary - the project that will be used to connect this dynamic library.

Oct. 1, 2018, 8:34 a.m.

Design PatternsСтруктурные шаблоны проектирования - Приспособленец

шаблоны проектирования, приспособленец, flyweight


  • Использование общего доступа для эффективного использования большого количества объектов.
  • Стратегия GUI Motif по замене тяжеловесных виджетов легкими виджетами.


Проектирование объектов вплоть до самых низких уровней «гранулярности» системы обеспечивает оптимальную гибкость, но может быть неприемлемо дорогим с точки зрения производительности и использования памяти.

Sept. 27, 2018, 9:11 a.m.

Design PatternsСтруктурные шаблоны проектирования - Фасад

шаблоны проектирования


  • Предоставить унифицированный интерфейс для набора интерфейсов в подсистеме. Фасад определяет интерфейс более высокого уровня, который упрощает использование подсистемы.
  • Обернуть сложную подсистему более простым интерфейсом.


Для сегмента клиентского доступа требуется упрощенный интерфейс для доступа к общей функциональности сложной подсистемы.

Sept. 26, 2018, 11:55 a.m.

Python 3Example - Object Pool in Python

python, pool, пул, шаблоны проектирования

Example of the design pattern An object pool in the Python programming language.

Sept. 26, 2018, 11:53 a.m.

JavaExample - Object Pool in Java

Java, пул, шаблоны проектирования

Example of the design pattern An object pool in the Java programming language.

Sept. 26, 2018, 10:55 a.m.

C++Example - Object Pool in C++

шаблоны проектирования, пул, C++

Example of the design pattern An object pool in the C ++ programming language.

Sept. 26, 2018, 10:01 a.m.

Design PatternsСтруктурные шаблоны проектирования - Декоратор

шаблоны проектирования, decorator, декоратор


  • Добавить дополнительные возможности и функционал к объекту динамически. Декораторы обеспечивают гибкую альтернативу подклассу для расширения функциональности.
  • Указанное клиентом декорирование интерфейса основного объекта путем его рекурсивной упаковки.
  • Оберните подарок, положите его в коробку и оберните коробку.


Вы хотите добавить поведение или состояние к отдельным объектам во время выполнения. Наследование не представляется возможным, поскольку оно является статичным и относится ко всему классу.

Sept. 25, 2018, 10:16 a.m.

PHPExample - Factory method in PHP

шаблоны проектирования, factory, method, PHP

In the Factory Method Pattern, a factory method defines what functions must be available in the non-abstract or concrete factory. These functions must be able to create objects that are extensions of a specific class. Which exact subclass is created will depend on the value of a parameter passed to the function.

В этом примере у нас есть фабричный метод AbstractFactoryMethod , который задает функцию makePHPBook($param) .

Конкретный класс OReillyFactoryMethod factory расширяет AbstractFactoryMethod и может создать правильное расширение класса AbstractPHPBook для заданного значения $ param.

Oct. 15, 2018, 9:36 p.m.
Allyans .

C++ - Test 001. The first program and data types

  • Result:60points,
  • Rating scores -1
Oct. 15, 2018, 11:25 a.m.
Екатерина Самойлова

C++ - Test 002. Constants

  • Result:33points,
  • Rating scores -10
Oct. 15, 2018, 11:17 a.m.
Екатерина Самойлова

C++ - Test 006. Enumerations

  • Result:80points,
  • Rating scores 4
Recent comments
Oct. 16, 2018, 4:14 p.m.

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

В Qt 5.11. при попытке вставить в БД запись выдает ошибку QSqlQuery::prepare: database not openQSqlDatabasePrivate::database: requested database does not belong to the calling thread. ...
Oct. 10, 2018, 1:16 p.m.

Qt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

наверняка, так и есть)
Oct. 10, 2018, 9:50 a.m.
Евгений Легоцкой

Qt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

Если и начинать писать о плагинах, то нужно тогда с Qt Creator начинать, там наверняка будет одинаковый принцип, но по Qt Creator хотя бы информация есть.
Oct. 10, 2018, 9:48 a.m.

Qt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

О плагинах к QtCreator в целом, тоже интересно.
Oct. 10, 2018, 9:46 a.m.

Qt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

ну типа того, создание программы, функционал которой можно расширять плагинами, и, в перспективе, создание API.
Now discuss on the forum
Oct. 15, 2018, 12:45 p.m.
Allyans .

QGraphicsItem change color

Oct. 11, 2018, 10:13 a.m.

Работа с WebView в QML

Нашел в чем проблема. Пишу на случай если кому-то попадется такое же счастье с WebView как и мне. Проблема как оказалась с Debug версией, так как в Release и Profile все работает (...
Oct. 10, 2018, 12:49 p.m.
Виталий Антипов

Кто что делает на Qt?

Работаем по локальной сети. Файл базы, схемы и фото лежат на сервере. Чтобы не было проблем при одновременной работе с одним файлом, все запросы обернул в транзакции, как указано в документаци...
Oct. 10, 2018, 11:21 a.m.

Редактирование записи на форуме

Добрый день! К сожалению встретил небольшой баг на форуме. При создании записи на форуме и вставке кода, через соответствующую кнопку номера строк проставляются верно, но каждый...
Oct. 10, 2018, 9:46 a.m.

Настройка Qt Creator для Android

Я Genymotion  ставил с VBox в комплекте для личного использования, после добавил из списка телефон с нужным API. Запустил его и при компиляции Qt Creator сам нашел его и все запустилось...
Join us in social networks