Блокнот 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 more313
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 = users2.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=ignore5. Торрент 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.serviceIntel 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 и выше
#endifQt6Core.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
Программа для удаления приложений с телефона на 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 6341ADB 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
