Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
9 октября 2018 г. 19:16

Qt

Qt, DLL, dll, Windows, dynamic

На форуме возник вопрос, как создать динамическую библиотеку и правильно её подключить в сторонний проект. Периодически такие вопросы возникают, поэтому рассмотрим один вариант создание динамической библиотеки dll для Windows с использованием визардов стандартных в Qt Creator.

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

Создадим два проекта:

  1. QuiLib - это будет внешняя динамическая библиотека, которая будет содержать одно диалоговое окно. Данное диалоговое окно будет открываться в основном проекте.
  2. WithDynamicLibrary - проект, который будет использоваться как раз для подключения данной динамической библиотеки.

28 февраля 2016 г. 15:45

Qt

HotKey, linux, QGlobalShortcut, Qt, Windows

В процессе изучения вопросов с глобальными хоткеями для Linux и Windows я написал свой велосипед для быстрой регистрации хоткеев. Получившаяся библиотека называется QGlobalShortcut и выложена на GitHub под лицензией LGPLv2. Библиотека поддерживает платформы Windows и Linux/Unix (которые используют X11)

Логика работы класса QGlobalShortcut, который предоставляется данной библиотекой, похожа на логику работы класса QShortcut, хотя явно и не дотягивает до данного класса по ряду параметров, но главное, что выполняет свою основную функцию. А именно, зарегистрировать глобальный HotKey и выслать сигнал о его активации.

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

2 января 2016 г. 17:30

Qt

Qt, WinAPI, Windows, автозагрузка, автозапуск

Как известно, класс QSettings позволяет сохранять настройки приложения в реестре ОС Windows . Благодаря такой возможности и хорошему знанию работы реестра Windows можно добавить приложение в автозапуск, либо удалить его оттуда через, например, диалог настроек приложения. Для этого можно воспользоваться чекбоксом, и в случае, если он отмечен, то по клику по кнопке подтверждения в диалоговом окне записать приложение в автозапуск, в противном же случае удалить его из автозапуска.

В любом случае всё сводится к двум действиям.

Записываем приложение в автозапуск

#ifdef Q_OS_WIN32
    QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
    settings.setValue(APPLICATION_NAME, QDir::toNativeSeparators(QCoreApplication::applicationFilePath()));
    settings.sync();
#endif
26 сентября 2015 г. 1:00

Программы

PHPStorm, Windows, FTP

В процессе поддержания сайта в актуальном состоянии и его развитии любой вебмастер сталкивается с тем, что ему необходимо корректировать программный код сайта, даже если он вплотную сидит на CMS вроде Wordpress . Ни один шаблон, ни одна тема оформления не могут удовлетворять до конца и вскоре поднаторевший блоггер начинает править код сайта. И тут встаёт вопрос об удобстве работы с сайтом. Ручное копирование файлов и их обратная заливка после редактирования не самый лучший выход. Поэтому использование IDE , которые могут работать с сайтом по FTP является значительным упрощением работы вебмастера.

Одной из таких IDE является PHPStorm от компании JetBrains. Всё, что требуется, это настроить подключение к сайту по FTP , при создании проекта из существующего кода. После чего IDE скачает с сайта содержимое, которое будет редактироваться. Поэтому, если вы держите сайт на каком-либо хостинге, то включите возможность подключения по FTP , если конечно хостинг это позволяет. Если не позволяет, то меняйте хостинг провайдера.

16 августа 2015 г. 15:32

Qt

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

В прошлой статье Мы научились быстро собирать все используемые в проекте DLL-библиотеки. А теперь настало время поговорить о том, как собрать инсталлятор для ОС Windows. Уже длительное время пользуюсь довольно удобной opensource утилитой под названием InnoSetup, которая позволяет буквально в несколько кликов собирать мультиязычный инсталлятор.

Инсталлятор собирается утилитой из скрипта, который вы можете написать в рукопашную, или воспользоваться сценарием по созданию скрипта. Второй вариант проще и достаточно эффективен.

Сборка инсталлятора

Шаг первый. Запуск сценария сборки скрипта

Для запуска сценария заходим в меню и выбираем создать новый: File > New или комбинация клавиш Ctrl + N.

После чего нажимаем на кнопку Next.

КА
19 февраля 2019 г. 18:32
Кристина Афанасьева

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

  • Результат:70баллов,
  • Очки рейтинга1
КА
19 февраля 2019 г. 18:26
Кристина Афанасьева

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:60баллов,
  • Очки рейтинга-1
КА
19 февраля 2019 г. 18:00
Кристина Афанасьева

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

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
21 февраля 2019 г. 12:51
Евгений Легоцкой

Иногда CMake приходится перезапускать начисто, не обновляет кэш
R
21 февраля 2019 г. 12:29
RandyGallup

Я указал данные строки, т.к. без них у меня вылетала следующая ошибка: By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configurat...
21 февраля 2019 г. 12:08
BlinCT

Вот атк выглядит мой проектник, посмотрите его. cmake_minimum_required(VERSION 3.6)project(projecttimer)set(CMAKE_CXX_STANDARD 11)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTORCC ON)find_packa...
21 февраля 2019 г. 12:04
BlinCT

Смотрите, если вы используете глобально для проекта -DCMAKE_PREFIX_PATH= то вам не надо уже указывать вот эти строкиset(Qt5Core_DIR "C:/Qt/5.12.1/mingw73_64/lib/cmake/Qt5Core")set(Qt5Gui_DIR...
R
21 февраля 2019 г. 11:54
RandyGallup

Даже не запускается. main.cpp у меня точно такой же, как в статье. CMakeLists.txt пришлось немного подправить (прикрепил ниже), т.к. не находились некоторые файлы. cmake_minimum_requi...
Сейчас обсуждают на форуме
21 февраля 2019 г. 8:58
Евгений Легоцкой

Ну у меня координаты передавались в зависимости от положения курсора мыши, а в вам по сути нужно будет аналогичным способом посылать даннные из полей ввода. Так что здесь скорее интерфес...
20 февраля 2019 г. 21:55
Евгений Легоцкой

Не до конца понимаю сути вопроса, наверное, нужно увидеть программный код и попытку его применения, но к методам базового класса можно обращаться в наследованном классе через вызов по имени ба...
MU
20 февраля 2019 г. 15:06
Maciej Urmański

Yes, ok I have solution! Thank you for directing me about annotate.:) Solution is: users_in = User.objects.filter(joined_users__goal=goal, joined_users__joined=True)
20 февраля 2019 г. 14:40
Евгений Легоцкой

Думаю, что ещё можно переопределить mouseReleaseEvent(QMouseEvent* event) у QTableView, который содержит модель и немного поиграться с индексом. Если это индекс, который соответству...
20 февраля 2019 г. 10:34
Евгений Легоцкой

Да, так тоже можно. Единственный момент в том, что lupdate не всегда понимает, к какому контексту это дело относится, и может запихать в левый контекст. В небольшом проекте это не критич...
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы