en
Feedback
Блокнот qt-программиста

Блокнот qt-программиста

Open in Telegram

Программирование на Qt под Windows и Linux (Debian, Astra Linux) https://teletype.in/@zqtprog https://t.me/zqtprog ЮMoney (Яндекс.Деньги) 4100 1188 9778 9041 Карта 5599 0021 0667 6341

Show more
313
Subscribers
No data24 hours
+27 days
+930 days
Posts Archive
[Unit]
Description=qBittorrent Command Line Client
After=network.target

[Service]
Type=forking
User=qbittorrent-nox
Group=qbittorrent-nox
UMask=007
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target
На всякий случай, чтобы не было ошибок при запуске сервиса, создаем каталоги:
sudo mkdir /home/qbittorrent-nox
sudo chown qbittorrent-nox:qbittorrent-nox /home/qbittorrent-nox
sudo usermod -d /home/qbittorrent-nox qbittorrent-nox
Перезагружаем Systemd Daemon:
sudo systemctl daemon-reload
Запускаем и включаем сервис qBittorrent-nox:
sudo systemctl start qbittorrent-nox
sudo systemctl enable qbittorrent-nox
Статус службы:
systemctl status qbittorrent-nox
Заходим через веб-интерфейс в qbittorrent 127.0.0.1:8080 Пользователь: admin Пароль: adminadmin Не забываем тут же поменять пароль. Поддержите проект: ЮMoney (Яндекс.Деньги): 4100 1188 9778 9041 Карта: 5599 0021 0667 634

Домашний медиа-сервер на базе Linux (Debian 12) 0. Находим какой-нибудь компьютер (миникомпьютер, старый ноутбук и т.д.) 1. Debian 1.1. Устанавливаем Debian 12.9 без окружения рабочего стола. Желательно интернет подключить по Ethernet. В процессе установки отключаем окружение рабочего стола. Включаем SSH сервер. 1.2. Заходим на сервер по SSH.
ssh 192.168.1.5 -l user1
1.3. Смотрим, прописаны ли репозитории.
su
nano /etc/apt/sources.list
#deb http://deb.debian.org/debian bookworm main contrib non-free-firmware non-free
#deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware non-free
#deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware non-free

deb http://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware

deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
Выполняем команду:
apt update
1.4. При необходимости устанавливаем sudo
apt install sudo
1.5. Ошибка: user1 is not in the sudoers file.
su - root
adduser user1 sudo
где user1 - имя вашего пользователя 1.6. Перезагружаемся
su
systemctl reboot
1.7. Устанавливаем для удобства MC
sudo apt install mc
2. samba 2.1. Установим samba
sudo apt install samba
2.2. Конфигурируем samba
sudo nano /etc/samba/smb.conf
[public]
comment = public folder
browseable = yes
path = /home/user1/public
guest ok = yes
read only = no
create mask = 0777
writable = yes
read only = no
public = yes
force user = user1
force group = users
2.3. Создаем каталог public
cd ~
mkdir public
chmod 0777 public
2.4. Перезапускаем smb
sudo systemctl restart smbd
3. WiFi 3.1. Настраиваем WiFi
sudo iwconfig
Ищем название wifi-интерфейса: wlp2s0 3.2. Конфигурируем WiFi
sudo nano /etc/network/interfaces
Советуют комментировать Ethernet:
#allow-hotplug enp1s0
#iface enp1s0 inet dhcp
#iface enp1s0 inet6 auto
Я не комментировал. Добавляем настройки WiFi
allow-hotplug wlp2s0
iface wlp2s0 inet dhcp
# имя сети
wpa-ssid MyNet
wpa-proto RSN
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk 12981923912743193241324
Где ключ получаем командой:
wpa_passphrase MyNet my_password
Получаем:
network={
        ssid=MyNet"
        #psk="my_password"
        psk=12981923912743193241324
}
Откуда psk переносим в wpa-psk Однако, у меня получился такой /etc/network/interfaces
source /etc/network/interfaces.d/*

auto loano 7.2
iface lo inet loopback

# The primary network interface
allow-hotplug enp1s0
iface enp1s0 inet dhcp
# This is an autoconfigured IPv6 interface
iface enp1s0 inet6 auto

auto wlp2s0
#allow-hotplug wlp2s0
iface wlp2s0 inet dhcp
# имя сети
wpa-ssid MyNet
wpa-psk my_password
3.4. Применяем настройки WiFi sudo ifup wlp2s0 sudo /etc/init.d/networking restart 4. Закрытие крышки 4.1. Отключаем выключение при закрытии крышки ноутбука
sudo nano /etc/systemd/logind.conf
Раскомментируем строку:
HandleLidSwitch=ignore
5. Торрент 5.1. В качестве торрента нужен консольный вариант торрент-качалки с удалённым веб-интерфейсом. Для этого подходят qbittorrent, transmission, rtorrent и др. Распиаренный rtorrent мне не понравился: сразу не завёлся, веб-интерфейс нужно ставить отдельно, да и говорят глюки в нем есть. qbittorent же как всегда не подвёл. Устанавливаем консольную версию qbittorent
sudo apt install qbittorrent-nox
Создаём выделенного пользователя системы и группу для qBittorrent:
sudo adduser --system --group qbittorrent-nox
Добавляем своё имя пользователя в группу qBittorrent-nox:
sudo adduser user1 qbittorrent-nox
Создаём сервис (службу) для qBittorrent-nox:
sudo nano /etc/systemd/system/qbittorrent-nox.service

Intel oneAPI 2025.0.1 Прямые ссылки intel-oneapi-base-toolkit-2025.0.1 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ae29263e-38b9-4d43-86c3-376d6e0668e7/intel-oneapi-base-toolkit-2025.0.1.47_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/dfc4a434-838c-4450-a6fe-2fa903b75aa7/intel-oneapi-base-toolkit-2025.0.1.46_offline.sh intel-oneapi-hpc-toolkit-2025.0.1 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a37c30c3-a846-4371-a85d-603e9a9eb94c/intel-oneapi-hpc-toolkit-2025.0.1.48_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b7f71cf2-8157-4393-abae-8cea815509f7/intel-oneapi-hpc-toolkit-2025.0.1.47_offline.sh w_ifort_runtime_p_2025.0.4 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1269b58a-590e-49b1-9f53-beebe171ac56/w_ifort_runtime_p_2025.0.4.1522.exe w_dpcpp_cpp_runtime_p_2025.0.4 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/90492fdd-9cdc-4423-b9d2-c35de9510fd2/w_dpcpp_cpp_runtime_p_2025.0.4.1522.exe intel-dpcpp-ct-2025.0.1 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/78fbd1ec-b7e4-4e8d-9ddb-f863bd902996/intel-dpcpp-ct-2025.0.1.21_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6d1e0867-72b4-4670-8efc-3586894ad15f/intel-dpcpp-ct-2025.0.1.19_offline.sh intel-dpcpp-cpp-compiler-2025.0.4 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/90492fdd-9cdc-4423-b9d2-c35de9510fd2/intel-dpcpp-cpp-compiler-2025.0.4.21_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/84c039b6-2b7d-4544-a745-3fcf8afd643f/intel-dpcpp-cpp-compiler-2025.0.4.20_offline.sh intel-fortran-compiler-2025.0.4 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1269b58a-590e-49b1-9f53-beebe171ac56/intel-fortran-compiler-2025.0.4.19_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ad42ee3b-7a2f-41cb-b902-689f651920da/intel-fortran-compiler-2025.0.4.21_offline.sh intel-cryptography-primitives-library-2025.0.0 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/5df927ea-116f-4b64-8ab7-95cdd7c42cc9/intel-cryptography-primitives-library-2025.0.0.610_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/4592da40-6f1c-4d4b-aa5b-0bb97ec66c92/intel-cryptography-primitives-library-2025.0.0.616_offline.sh intel-ipp-2022.0.0 https://registrationcenter-download.intel.com/akdlm/IRC_NAS/2e89fab4-e1c7-4f14-a1ef-6cddba8c5fa7/intel-ipp-2022.0.0.796_offline.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/acf220fa-326d-4f6e-9b63-f2da47b6f680/intel-ipp-2022.0.0.809_offline.sh

Альт (ALT Linux) user отсутствует в файле sudoers ОС: Альт 10.2 1 способ:
su - 
control sudowheel enabled
exit
2 способ:
su -
mcedit /etc/sudoers
Раскомментируем строку (убираем #): # WHEEL_USERS ALL=(ALL) ALL Сохраняем файл и выходим:
exit
Поддержите проект: ЮMoney (Яндекс.Деньги): 4100 1188 9778 9041 Карта: 5599 0021 0667 634

Комментарий к вопросу: Как установить Qt (qt5 qt6) в России через онлайн-инсталлятор при блокировке IP-адресов? https://t.me/zqtprog/143 Адрес прокси для скачивания Qt взят с сайта авторов: https://quterussia.ru/download/ По вопросам работы прокси для скачивания Qt можно обратиться к авторам: Телеграм-канал (https://t.me/gen_xt) Телеграм-чат (https://t.me/gen_xt_chat) Прокси собрана людьми для людей на базе датацентра коллег. Регулярно используем в своей работе и в хакатонах, в том числе федеральных с участием университетов и даже сообщества Аврора ОС. С ОМП (Аврора ОС), ГУАПом, ЛЭТИ и прочими имеются соглашения о сотрудничестве абсолютно легитимные. Кэш скачанного через прокси находится в каталоге: c:\Users\%ИМЯ ПОЛЬЗОВАТЕЛЯ%\AppData\Local\cache\qt-unified-windows-online\ Там лежат файлы с контрольными суммами. Их можно сверить с контрольными суммами на официальном зеркале https://qt-mirror.dannhauer.de/online/qtsdkrepository/

Отдельное спасибо тем, кто поддерживал канал в этом году! 🙏

С Наступающим Новым 2025 Годом! Желаю всем счастья, здоровья, благосостояния, удачи и конечно же много строчек нового успешного кода.🎉🥳🎊🎄

Как сделать, чтоб часть кода была только для Qt6, а часть для Qt5?
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
        // код, например, для qt5 (ниже qt6.0.0)
#else
        // код для qt6.0.0 и выше
#endif 
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
    // код для qt6.0.0 и выше
#endif

Qt6Core.lib(qsemaphore.cpp.obj):-1: ошибка: LNK2001: unresolved external symbol _Cnd_timedwait_for_unchecked После переноса статической сборки Qt6.8.1 с одного компьютера на другой - при сборке приложений на втором компьютере появилась ошибка: Qt6Core.lib(qsemaphore.cpp.obj):-1: ошибка: LNK2001: unresolved external symbol _Cnd_timedwait_for_unchecked Решение: Достаточно обновить Microsoft Visual Studio 2022 на втором компьютере.

LLVM с официального сайта не подходит для данной статической сборки. Будет всё равно выводиться предупреждение. Оказывается необходимо выбрать с сайта qt (https://qt-mirror.dannhauer.de/development_releases/prebuilt/libclang/) определенную версию LLVM (собранную разработчиками Qt) со статическими библиотеками, которых нет в официальной версии LLVM. Мне это сделать не удалось: выводились ошибки при сборке самого Qt6. Поддержать проект (подарком): ЮMoney 4100 1188 9778 9041 карта 5599 0021 0667 6341

Qt 6.8.1 static build. Статическая сборка Qt 6.8 под Microsoft Visual Studio 2022 (msvc2022, Windows x64) ОС: Windows 11 Microsoft Visual Studio 2022 Qt 6.8.1 1. Скачиваем архив исходников Qt для Windows (qt-everywhere-src-6.8.1.zip) с официального сайта qt. 2. Создаем каталог, например, c:\Qt\Qt6.8.1-x64-msvc2022-static\6.8\Src и распаковываем в него содержимое архива исходников. Сборка в дальнейшем будет привязана к данному каталогу и букве диска. Получим подкаталоги 6.8\Src\qtbase, 6.8\Src\coin и т.д.). 3. Устанавливаем: Cmake (https://cmake.org/download) StrawberryPerl (https://strawberryperl.com) Python 3 (https://www.python.org) Node.js (https://nodejs.org) ninja (https://github.com/ninja-build/ninja/releases) 4. Запускаем командную строку (cmd) с правами администратора и последовательно выполняем в ней следующие команды: Задаем системные переменные Qt:
set QTDIR=c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src\qtbase
set PATH=c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src\qtbase\bin;%PATH%
Системная переменная пути к LLVM:
set PATH=c:\Program Files\LLVM\bin;%PATH%
set LLVM_INSTALL_DIR=C:\Program Files\LLVM
Системные переменные пути к ninja и gnuwin32 (для QtPdf):
set PATH=c:\Qt\Tools\Ninja;%PATH%
set PATH=c:\Program Files (x86)\GnuWin32\bin;%PATH%
Для Microsoft Visual Studio 2022 (msvc2022):
cd "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build"
vcvarsall.bat amd64
Конфигурация:
configure -debug-and-release -static -static-runtime -opensource -confirm-license -platform win32-msvc -nomake examples -nomake tests -qt-zlib -qt-libpng -qt-libjpeg -prefix "c:\Qt\qt6.8.1-x64-msvc2022-static\6.8" -skip qtandroidextras -skip qtactiveqt -skip qtgamepad -skip qtmacextras -skip qtlocation -skip qtlottie -skip qtquick3d -skip qtquick3dphysics -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquickeffectmaker -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtx11extras -no-dbus -no-openssl -skip qtgraphs -skip qdoc
где:
-prefix "c:\Qt\qt6.8.1-x64-msvc2022-static\6.8" - путь, куда будет помещена сборка,
Пропущенные модули: -skip qtandroidextras -skip qtactiveqt -skip qtgamepad -skip qtmacextras -skip qtlocation -skip qtlottie -skip qtquick3d -skip qtquick3dphysics -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquickeffectmaker -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtx11extras -skip qtgraphs -skip qdoc
-nomake examples -nomake tests - отказ от сборки тестов и примеров
-platform win32-msvc - выбор платформы
-confirm-license - подтверждение согласия с лицензией
-static -static-runtime - статическая сборка
Переход в каталог сборки:
cd c:\Qt\qt6.8.1-x64-msvc2022-static\6.8\Src
Сборка:
cmake --build . --parallel
Установка:
cmake --install .
Сборка и установка документации (не прошло):
cmake --build . --target docs
cmake --build . --target install_docs
Возможные ошибки: QtPdf won't be built. Python3 html5lib is missing. Необходимо установить html5lib:
pip install html5lib
QtPdf won't be built. Tool gperf is required. QtPdf won't be built. Tool bison is required. QtPdf won't be built. Tool flex is required. Необходимо установить: Gperf (https://sourceforge.net/projects/gnuwin32/files/gperf/3.0.1/gperf-3.0.1.exe/download) Flex (https://gnuwin32.sourceforge.net/downlinks/flex.php) Bison (http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-setup.exe) После сборки каталог Src будет занимать больше 100 Гигабайт. Его можно будет удалить. QDoc собрать статически не удалось. QtWebengine не поддерживает статическую сборку. Поддержать проект (подарком): ЮMoney 4100 1188 9778 9041 карта 5599 0021 0667 6341

Как быстро удалить папку большого объема, в которой много файлов? ОС: Windows Для быстрого удаления, например каталога исходников Qt6 после сборки (более 100 ГигаБайт большого количества файлов):
RD /s /q src
RMDIR [/S] [/Q] [диск:]путь
RD [/S] [/Q] [диск:]путь

    /S      Удаление дерева каталогов, т. е. не только указанного каталога,
            но и всех содержащихся в нем файлов и подкаталогов.

    /Q      Отключение запроса подтверждения при удалении дерева каталогов
            с помощью ключа /S.
Результат вас приятно удивит: быстрее проводника и даже ТоталКомандера, так как не происходит оценки количества удаляемых файлов для progressbar-а.

Как добавить в QLabel ссылку для открытия в браузере? Qt 5.15
QLabel* label_telegram;

label_telegram->setText("<a href=\"https://t.me/zqtprog\">https://t.me/zqtprog</a>");
label_telegram->setTextInteractionFlags(Qt::TextBrowserInteraction);
label_telegram->setOpenExternalLinks(true);

Как решить проблему с интерфейсом на Qt при масштабе дисплея 125%? Qt 5.15 В main.cpp перед созданием QApplication необходимо добавить строки:
int main(int argc, char *argv[])
{
    // для борьбы с масштабом 125%
    QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
    
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

ADB Phone Manager 12.12.2024

Обновился ADB Phone Manager 12.12.2024 Программа для удаления приложений с телефона на Android - ADB Phone Manager. ОС: Windows, Android 12.12.2024 + добавлено сохранение списка приложений в текстовый файл + добавлено чтение информации о телефоне + обновлена ссылка для поиска в RuStore + обновлена ссылка для поиска в Google Play + добавлен вывод списка системных/сторонних/включенных/отключенных приложений + добавлен вывод списка удаленных приложений + добавлено восстановление удаленных системных приложений + добавлен элемент с помощью о подключении телефона Сверяем контрольные суммы SHA256: b6f2c9f6bfa789482afd6398f5e305ec8ba947b4dd3035eaae32a04b463347a6 *ADB Phone Manager 2024-12-12.zip dc9c0d3fb1147015f081d15cb8b012b81623bb220750d6d682bc553f7a4ce23b *adbphonemanager.exe Приложение не собирает и не отравляет никаких данных. Все реализованные в программе функции доступны без ограничений. SDK Platform Tools - версия 35.0.2 (Июль 2024). Жду отзывов и предложений к улучшению программы. Поддержать проект (подарком): ЮMoney 4100 1188 9778 9041 карта 5599 0021 0667 6341

Нас 300! 3️⃣0️⃣0️⃣ 🎉

ADB Phone Manager 07-12-2024

ADB Phone Manager Предлагаю Вашему вниманию небольшую программу для удаления приложений с телефона на Android - ADB Phone Man
ADB Phone Manager Предлагаю Вашему вниманию небольшую программу для удаления приложений с телефона на Android - ADB Phone Manager. ОС: Windows, Android Реализованные функции: + вывод списка установленных на телефоне приложений + удаление приложения + просмотр информации о приложении в Google Play + просмотр информации о приложении в Rustore + фильтр и поиск по установленным приложениям Приложение не собирает и не отравляет никаких данных. Все реализованные в программе функции доступны без ограничений. Текущая версия - от 07-12-2024. SDK Platform Tools - версия 35.0.2 (Июль 2024). Скачать: https://t.me/zqtprog/205 Опасаемся подделок и скачивания с других сайтов. Сверяем контрольные суммы SHA256: 49cc4739aa636332f1e6a0df0f89da22ea6d0abc6b7d2714703c5a6f41b584ab *ADB Phone Manager 07-12-2024.zip 4002a4780e912458c20fabc6d0e87b583911843d5778ab993151ff16b573306e *adbphonemanager.exe Жду отзывов и предложений. Поддержать проект (подарком): ЮMoney 4100 1188 9778 9041 карта 5599 0021 0667 6341