Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB

Qt WinAPI - Lesson 002. How to make win installer for Qt apllication?

WinAPI, DLL, InnoSetup, Windows, Qt, Инсталлятор

In the previous article we learned how to quickly collect all used in the project DLL-libraries. And now it is time to talk about how to build an installer for OS Windows. For a long time I use quite comfortable opensource tool called InnoSetup, which allows just a few clicks to collect a multilingual installer.

The installer utility is going from a script, you can write to blows, or use a script to create the script. The second embodiment is sufficiently effective and easier.

Build installer

Step one. Running the build script

To run the script, go to the menu and choose to create a new one: File > New or combination of keys Ctrl + N.

Then click on the button Next.

Step Two. Defining the program data

In this step, setting up your program's data:

  1. Application Name;
  2. The version of the application;
  3. Publisher application;
  4. Website application.

After that, follow the next (Next button).

Step Three. Setting a folder to install the application

In this step, select the folder where you install the application, if required, and can specify whether to allow the user to change the destination folder or not.

Step Four. Selecting the folders and files that will be included in the package

In this step, you must select the executable file (* .exe), folders, and your application libraries.

Step Five. Setting advanced options of the installer

In this step, we set up the icons that will be created when you install the application, and user rights to configure these icons during installation.

Step Six. Defining the license agreement

Unless of course you have time to write ...

Step Seven. Set up the language of the installer

Step Eight. Setting the output folder and the name of the installer

In this step, we configure the path to the folder where the installer will be built and the name and icon of the installer. The following steps click Next and finally Finish .

Step Nine. Build installer

After the end of the script for the preparation of the script utility will offer to build the installer.

From build installer initially refused recommend if you have a folder with their attachments. As still need to manually register the file path of an assembly that are in those folders.

To do this, locate the unit [Files], and in it the line where the selected folder contents.

In this case, the line:

Source: "D:\gui_stm32\imageformats\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

It is necessary to correct the setting DestDir, as shown below, otherwise the installer will dump all the files in the pile.

Source: "D:\gui_stm32\imageformats\*"; DestDir: "{app}\imageformats"; Flags: ignoreversion recursesubdirs createallsubdirs

Coclusion

Summing up, I can say that the utility copes with its functionality in the "Excellent"

And to download from the official website at the following link: InnoSetup

Just do not forget to collect all the DLL project in the same folder as was done in the previous article.

Video

Comments

Only authorized users can post comments.
Please, Log in or Sign up
v
Jan. 17, 2019, 11:51 a.m.
vitalir12

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:20points,
  • Rating points-10
v
Jan. 17, 2019, 11:49 a.m.
vitalir12

C++ - Test 002. Constants

  • Result:50points,
  • Rating points-4
v
Jan. 17, 2019, 11:13 a.m.
vitalir12

C++ - Тест 003. Условия и циклы

  • Result:28points,
  • Rating points-10
Last comments
I
Jan. 16, 2019, 8:06 a.m.
IscanderChe

Заработало. Забыл model->select(); вписать.
I
Jan. 16, 2019, 8:02 a.m.
IscanderChe

Всё равно пусто, хотя строка с данными в базу добавляется.
Jan. 16, 2019, 7:51 a.m.
Евгений Легоцкой

потому, что нужно сохранять информацию для всех остальных ролей и столбцов через вызов переопределённого метода. Да к тому же вы ещё и зациклили вызов метода data. QVariant MySqlTableModel:...
I
Jan. 16, 2019, 7:43 a.m.
IscanderChe

Сделал вот так. В tableView ничего нет, кроме заголовка. QVariant MySqlTableModel::data(const QModelIndex &index, int role) const{ if (role == Qt::DisplayRole) { QTime ...
Now discuss on the forum
Jan. 18, 2019, 11:26 a.m.
nayk1982

Для Desktop делал так: void pause(int ms){ QTimer timer; timer.setInterval( qBound(1, ms, 3600000) ); timer.setSingleShot(true); QEventLoop loop; QObject::connect(&...
Jan. 17, 2019, 12:01 p.m.
Алексей Внуков

у меня просто есть отдельное поле с чекбоксамими какие колонки нужно отображать CheckBox { id: checkBox text: qsTr("some text") checked: true onC...
Jan. 15, 2019, 4:53 p.m.
Михаиллл

Спасибо, заработало.Но выдало обычный текст без форатирования HTML.Придется искать дальше
Jan. 15, 2019, 12:52 p.m.
BlinCT

Я же вам выше написал CLion умеет работать с ремоут машинами. И Qt так же собирает.
Join us in social networks

For registered users on the site there is a minimum amount of advertising