LINUX.ORG.RU

Сообщения nikitalol

 

PySide2 и как завершить бесконечный цикл в потоке по сигналу?

И так Имеется гуй на пайсайде. В нём класс

class MyClass(QtCore.QObject):
    logs = QtCore.Signal(str)
    ...
    def run(self):
        self.logs.emit("Started")
        while(True):
            ...

который ясен пень выполняется в отдельном потоке.

while(True): строчка неправильная от слова совсем, должен быть while(anyState):.

Вот об anyState я и хочу спросить.

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


UPD поток qthread, а не встроенный питунячий.

 , , ,

nikitalol
()

Как опакетить qmake проект ничего не делая?

При попытке собрать и поставить alphaplot и shotcut из исходников вылетает что то похожее на это.

$ qmake
...
$ make
...
$ sudo checkinstall
...

Installing with make install...

========================= Результаты установки ===========================
cd alphaplot/ && ( test -e Makefile || /usr/lib/qt5/bin/qmake -o Makefile /mnt/Disk_738/Apps-from-sourse/AlphaPlot-1.02/alphaplot/alphaplot.pro ) && make -f Makefile install
make[1]: вход в каталог «/mnt/Disk_738/Apps-from-sourse/AlphaPlot-1.02/alphaplot»
/usr/lib/qt5/bin/qmake -install qinstall -exe /mnt/Disk_738/Apps-from-sourse/AlphaPlot-1.02/data/alphaplot.desktop /usr/share/applications/alphaplot.desktop
Error copying /mnt/Disk_738/Apps-from-sourse/AlphaPlot-1.02/data/alphaplot.desktop to /usr/share/applications/alphaplot.desktop: Cannot create /usr/share/applications/alphaplot.desktop for output
make[1]: *** [Makefile:8720: install_desktop_entry] Ошибка 3
make[1]: выход из каталога «/mnt/Disk_738/Apps-from-sourse/AlphaPlot-1.02/alphaplot»
make: *** [Makefile:76: sub-alphaplot-install_subtargets-ordered] Ошибка 2

****  Установка неудачна. Отменяется создание пакета.

Очищается...OK

Удачи.

Можно конечно собирать дебпакет и другими улитами, более универсальными, НО как справедливо заметил всея Линус Торвальдс, мейнтейнерство это не то на что вы должны тратить своё время если профессионально этим не занимаетесь. По сему ищется именно простой способ.

sudo make install конечно работает но я каку в рот тянуть не собираюсь, ибо можно будет нарваться на неприятные последствия.

P.S. да будет проклят этот qmake!

P.P.S. Ладно ставим вопрос шире.

Как опакетить приложение ничего не делая?

 , ,

nikitalol
()

Чё, и st санкциями балуется?

Не получается скачать CubeMX и CubeIDE с офф сайта.

И если второе меня сейчас не волнует, то вот первое часто спасало для настройки фриртоса/юсб/системклок/прочей мелокой инициализации.

Proxy/vpn не пробовал, на сайте зарегистрирован.

При попытке нажать пишет вот это.

 ,

nikitalol
()

Запуск zoom для other linux.

Скачал zoom версии other linux(архив tar.gz), при попытке запустить ругается что не может найти свои библиотеки. При явном указании пути LD_LIBRARY_PATH к папку соответствующей либы она подгружается, выскакивает сообщение о том что не можем загрузить другую.

В теории можно просто сделать ему своё личное окружение LD_LIBRARY_PATH, но как пока не понимаю, папок там много.

Есть способ автоматизировать?

 

nikitalol
()

Как подружить openocd и iwdg?

Сразу после последней строчки данного куска кода

IWDG->KR = IWDG_WRITE_ACCESS;
IWDG->KR = IWDG_START;
IWDG->PR = IWDG_PR_PR_1;//вот тут 

в контроллере stm32f0x2 начинает шалить openocd.

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

При этом паузы и бряки работают.

Чем лечить куда копать?

Конфиг openocd.cfg прилагается.

source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f0x.cfg]
reset_config srst_nogate

Программатор stlink-v2, среда vscode+cortexdebug, система debian 11, армовский тулчейн arm-none-eabi из реп версии 8.3.1, отладчик gdb-multiarch.


Модель точнее предпочёл бы не говорить, и подозреваю что повторяется и вообще на всех мкк где есть сий модуль.


openocd видимо был ни причём, проблема оказалась в том что IWDG постоянно перезапускал контроллер. По этому его надо было останавливать на время пока программа на паузе.

В данном случае вставляем

RCC -> APB2ENR |= RCC_APB2ENR_DBGMCUEN;
DBGMCU->APB1FZ |= DBGMCU_APB1_FZ_DBG_IWDG_STOP;

перед запуском IWDG.

 , ,

nikitalol
()

Firefox после отключния яндекса.

Я не стал особо парится по поводу отключения яндекса в лисе и тут же вернул его на место, такую проблему уже создавал как то линукс минт.

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

Сейчас никакого автомолита для яндекса понятное дело нет, зато он есть для гугла. Подскажите, мб есть какое нибудь расширение или ещё какая свистелка что бы вернуть функционал?


Тупейшее решение после пяти минут сидения в настройках и некоторого озарения:

Настройки -> поиск -> поставить галку Отображать поисковые предложения при использовании панели адреса

 , ,

nikitalol
()

Адекватное российское зеркало debian.

Где будет меньше всего проблем, самая быстрая синхронизация и самые быстрые загрузки?

Пишите с пояснениями.

 , ,

nikitalol
()

Простой способ восстановления /var/lib/dpkg/info.

Пока решал проблему с ПМ, сдуру снёс эту папку.

Теперь летят ошибки вида

dpkg: предупреждение: список файлов пакета «имяпакета» отсутствует; предполагаем, что на данный момент у пакета нет установленных файлов

Пример: есть пакет prog, который включает в себя файл /usr/bin/prog-ex. После того что произошло на команду dpkg -S /usr/bin/prog-ex выдаются все предупреждения и указание на то что она не пренадлежит к какому либо пакету,а сам файл становится виден dpkg и пакет исчезает из предупреждений тлько после переустановки пакета. Новое ставится, но старое естественно не удаляется, для удаления нужно переустановить пакет.

В инете есть скрптик который переустанавливает все пакеты, есть команда sudo apt install --reinstall ~i, но она заврешается ошибкой типа нельзя переустановить systemd-timesyncd пока не настроен systemd.

В ручную 3 с лишним тыщи пакетов не переустановишь.

Есть ли простой способ восстановить это всё?

 ,

nikitalol
()

Серьёзно сломался пакетный менеджер.

Тут уже был топик на эту тему, но я считаю свой случай особенным.

dpkg: проблемы зависимостей не позволяют выполнить обработку триггеров libglib2.0-0:i386:
libglib2.0-0:i386 зависит от libc6 (>= 2.28), однако:
Пакет libc6:i386 пока не настроен.

Тут ещё оч много таких же сообщений

dpkg: ошибка при обработке пакета libglib2.0-0:i386 (--configure):
проблемы зависимостей — оставляем триггеры не обработанными
dpkg: слишком много ошибок — останавливаемся
При обработке следующих пакетов произошли ошибки:
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
libglib2.0-0:i386
Обработка остановлена из-за слишком большого количества ошибок.
E: Sub-process /usr/bin/dpkg returned an error code (1)

И вообще хз что делать, тк методы типа fix broken и apt clean ничего не решили, а просто проигнорить ошибку удалив соответствующий файл из /var/lib/dpkg я стремаюсь, всё же не какой то там левый пакет сломался.

Дистрибутив kde neon

Согрешил с установкой wine, от чего по всей видимости и текут проблемы.


UPD

доп инфа

user@pc:~$ sudo dpkg --configure --pending
[sudo] пароль для user:
dpkg: зависимости пакетов не позволяют настроить пакет kwin-dev:
kwin-dev зависит от libqt5x11extras5-dev (>= 5.11.0~), однако:
Пакет libqt5x11extras5-dev:amd64 пока не настроен.

dpkg: ошибка при обработке пакета kwin-dev (--configure):
проблемы зависимостей — оставляем не настроенным
Обрабатываются триггеры для libc-bin (2.31-0ubuntu9.7) …
dpkg: проблемы зависимостей не позволяют выполнить обработку триггеров libglib2.0-0:i386:
libglib2.0-0:i386 зависит от libc6 (>= 2.28), однако:
Пакет libc6:i386 пока не настроен.

dpkg: ошибка при обработке пакета libglib2.0-0:i386 (--configure):
проблемы зависимостей — оставляем триггеры не обработанными
При обработке следующих пакетов произошли ошибки:
kwin-dev
libglib2.0-0:i386

UPD

Решение было непростым и сводилось к полному удалению i386 из системы с помощью скрипта

#!/bin/bash

while read PKG; do
sudo dpkg --remove --force-remove-reinstreq "$PKG":i386
done < pkg.txt

sudo apt reinstall ~i

 , , ,

nikitalol
()

Kde и GNOME клиенты телеграм.

Кто нибудь юзал уже?

https://github.com/melix99/telegrand

https://github.com/KDE/tok

Расскажите о впечатлениях.

А то уж очень бесят некоторые баги фитчи в официальном клиенте.

 , ,

nikitalol
()

Как отредактировать кнопки в gtk csd?

Проблема: В gtk3 приложениях с csd сами кнопки свернуть распахнуть закрыть не занимают всё пространство с краю и по вертикали.

Поясняю: когда растягиваешь окно на весь экран, а потом хочешь его закрыть, кидаешь мышь в угол и жмёшь закрыть. Но вот незадача-не работает потому что попал в пустое пространство, надо целится в кнопу(кто это б***ь придумал? покажите мне этого человека!). Можно нажимать ctrl+q, но привычка есть привычка, и ломать её я не собираюсь.

Темы gtk можно редактировать, и в теории я даже знаю как, но вот что делать конкретно с кнопками я не понял.

Проблема наблюдается в любом линуксе вне зависимости от версий и дистрибутива, но решается сейчас только в контексте последних кед с темой оформления gtk breeze, версия gtk3/gtk4(допускаю, что для этих версий может быть по разному).


UPD. Решение; Вставить в ~/.config/gtk-3.0/gtk.css что то похожее на это:

headerbar entry,
headerbar spinbutton,
headerbar button{
    min-height: 42px;
    min-width: 22px;
    padding-left: 0px; /* same as childrens vertical margins for nicer proportions */
    padding-right: 0px;
    margin: 0px; /* same as headerbar side padding for nicer proportions */
    padding: 0px;
}

headerbar separator {
    margin-top: 0px; /* same as headerbar side padding for nicer proportions */
    margin-bottom: 0px;
}

headerbar {
    min-height: 32px;
    padding-left: 0px; /* same as childrens vertical margins for nicer proportions */
    padding-right: 0px;
    margin: 0px; /* same as headerbar side padding for nicer proportions */
    padding: 0px;
}
.titlebar button.titlebutton {
    padding: 3px;
    background-size: 24px;
}

 ,

nikitalol
()

Как укротить приложения без декоратора в kde?

Описание проблемы в общем то на картинках, а именно на второй, на первой просто её наглядная иллюстрация. Как фиксить? Общем есть подозрение что это чисто свойство кдешного декоратора окон, и если это так, прошу подтвердить, и тогда имеет смысл писать им в какой нибудь wishlist или багтрекер.

Помимо этой есть ещё одна некрасивость подобного плана(если любите размытие, то внимательно посмотрите на скруглённые углы в каком нибудь konsole), но о ней я буду сразу писать в багтрекер.

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

Дистр kde neon, сессия на иксах, чё на вейлданде не смотрел но если там пофиксят то пофиг, всё равно пересяду рано или поздно.

https://i.imgur.com/FJgO251.jpg https://i.imgur.com/Iyr3OZa.jpg

UPD


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

 , , ,

nikitalol
()

Как настроить тему некоторых непослушных gtk приложений в KDE?

Нет, она в общем настроена, навскидку от qt-шной так не отличишь, но проблему представляют несколько приложений: gtkwave, inskape из официальных репрезеториев, xournal и gtkam. Последние меня вообще мало колышет так как либо заменены аналогами либо обновлены, а вот первой надо пользоваться много и часто. Проблема в совершенно кривом цеплянии системной темы у вышеуказанных программ. То есть при тёмной теме breeze они белые. Но это пол беды, хуже то что они цепляют белые системные иконки для тёмной темы и вот тут становится просто неудобно работать, когда кнопки есть но их не видно. Можно просто поменять на другую тему gtk, что я в общем то и сделал, но тогда начинает ныть внутренний протекционист: как вариант цепануть эту тему только для этих приложух(подскажите как), но хочется что то более красивое.


Дистрибутив kde neon user edition


У меня есть подозрение, что разрабы этих программ зачем-то хардкодят темы, хотя это не тру вей, да и если делаешь свою тему делай до конца через стили, иначе не удобно же потом нихрена. Я так как то кнопку перекрасил для fusion-а, а потом запустил с тёмным breeze. Не надо так.


Это были приложения gtk2 как мне подумалось изначально. По этому да ставить lxappearance и жить спокойно.


Ситуацию не спасло. Во всей видимости тут gtk2 приложения читают не свой конфиг, в общем непонятно.


Дешевле проще и эффектнее оказалось просто компиляция программы из исходников с gtk3 и установка префикса в opt. Ещё и запуск быстрее и дизайн вкуснее вышли. Движусь в сторону gentoo.

 , ,

nikitalol
()

Нужен максимально простой sftp сервер для отладки.

Работаю этим в первые, но суть в том что нужно просто запустить на компе sftp-сервер для отладки программы на python для одноплатника. И перекидывать на него файлы. Сама программа должна работать в конечном итоге с сетевым диском с доступом по sftp.


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

 , ,

nikitalol
()

Выкрутасы в Qt

Данный пост хоть и имеет прямое отношение к программированию(а именно разработке на Qt), в Development не вставляется, потому что:

  • Практически не имеет срочности(пока чей нибудь заказчик не скажет).
  • Не вопрос, а скорее просто тема для размышлений.
  • Для кого-то просто повод потрындеть.

Основная идея: выйти за рамки системного заголовка окна.

Допущение: Пусть вы пишете приложение со «вкладочным» интерфейсом. Почему именно так - вопрос десятый, ну прихоть у меня такая.

Что хочется(например заказчику):

  • Строка поиска, вкладки и кнопочки закрытия, максимизации и сокрытия в заголовке.
  • Максимально нативный вид приложения, ну хотя бы для lin и win.

Что делаете вы:

  • Отключаете заголовок.
  • Берёте tabwiget, добавляете в tabbar туда нужные элементы, а именно 3 кнопки строку поиска сами решайте из чего и сепйсор для того что бы было за что перетаскивать.
  • Настраиваете кнопки(к примеру через CSS) так что бы они максимально похожи на системные.
  • Возможно даже пытаетесь тянуть системные настройки тем и декоратора(в случае с линуксом).

Насколько по вашему мнению был бы удобен такой «вкладочный» интерфейс?

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

Если речь идёт про семёрку то на хабре где то была статья на эту тему.

 

nikitalol
()

Как поружить PythonQwt с QtDesigner?

В общем для написания приложений на Qt где необходмо строить графики остановился именно на этой библиотеке(как для питона, так и для плюсов), привык уже.

Qwt доступен из дизайнера, то есть плагин стоит. И всё работает.

Мучает только одна проблема, а именно дебильный импорт qwt после команды pyuic5.

Эта сволочь постоянно ставит его в конец, и при этом импортирует не как нормально а как он зовётся в C++ варианте. То есть приходится постоянно переделывать

from PyQt5 import QtCore, QtGui, QtWidgets

...

from qwt_plot import QwtPlot

в

from PyQt5 import QtCore, QtGui, QtWidgets
from qwt import QwtPlot

...

Честно сказать немного надоедает.

Кто нибудь сталкивался? Есть идеи как пофиксить?


P.S. При использовании того же файла в программе на плюсах всё ок.


В целом наверное правильно было бы делать отдельные ui файлы в дизайнере, а потом просто собирать вместе(тогда проблема будет решена), но пока интерфейс не настраиваемый это не имеет особого смысла.


Промежуточное решение

sed -i '/from qwt_plot import QwtPlot/d' вашфайл 
sed -i '/from PyQt5 import QtCore, QtGui, QtWidgets/a from qwt import QwtPlot' вашфайл

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

 , , , ,

nikitalol
()

Как создать файл и папку python3?

open("folder/polder/file", "w")

выдаёт закономерный No such file or directory: 'folder/file', если folder/polder не существует.

Как заставить его создавать папку средствами питона(включая вложенные), сабпроцесс и подобные ему штуки не предлагать, парсить строку мне тоже влом.


os.mkdir("имя вашей папки")

Вопрос скорее заключался в ещё более лаконичном решении

 , ,

nikitalol
()

Сломалась konsole. Как починить?

Обновил kde neon.

$ konsole
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konsole path = /usr/bin pid = 7483
KCrash: Arguments: /usr/bin/konsole 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi

Вылетает такое при запуске. При этом yakuake и терминалы в других приложениях kde работают как часы. Что делать?


В моём случае отработало

mv .local/share/konsole/ .local/share/konsole.old

Спасибо тому кто помог.


UPD

Эта программа перестала любить прозрачно-размытый фон. Всё падало из-за него.

 , , ,

nikitalol
()

STM32 bluepill как заставить чувствовать коннект по usb?

При подключении к каком нибудь терминалу(cutecom, putty, terminal 1b, termit) устройства часто умеют понимать, есть ли у них коннект с компом(когда соединён юсб). То есть воткнул юсб-загорелся светодиод с питанием, запустил программу, нажал коннект-загорелся второй, нажал дисконнект-погас второй. Как реализовать такую штуку в блюпиле?

Нужно строго программное решение, должно работать как в линуксе так и винде.


P.S.

  1. Блюпил там уже не совсем блюпил.
  2. Это CDC устройство.

 , ,

nikitalol
()

Как правильно работать с QList?

Имеем классическую шаблонную программу на Qt5, то есть есть файлы main.cpp, name.h, name.cpp. В файле name.h есть класс app от qmainwindow, в нём

private:
    ...
    QList<QwtPlotCurve> *graph;

В конструкторе класса есть

graph = new QList<QwtPlotCurve>[10];
for(int i=0; i < graph->size(); i++)
{

}

QwtPlotCurve имеет свои методы, и мне нужно перекрасить каждую кривую в свой цвет, привязать их к виджету через attach, и потом обновлять с периодом 1/25 сек. Отдельно с кривым, когда они не члены QList, я работать умею, но тут затык. Например на

graph[i].attach(ui->graphWidget);

ругаются No member named 'attach' in 'QList<QwtPlotCurve>', хотя такой метод у QwtPlotCurve есть.

graph->at(i).attach(m_ui->graphWidget);

выплёвывает 'this' argument to member function 'attach' has type 'const QwtPlotCurve', but function is not marked const.

Как правильно обращаться к элементами QList?

PS. выхлоп читать умею, откуда ноги растут понимаю, не понимаю что делать.


UPD

Тут заметили косяк с созданием динамического массива контейнеров. Это ключевая ошибка для данной задачи. Я увидел несколько решений, и пока не решил какое подходит лучше.

Ссылка на тот же вопрос на хабре.

 , ,

nikitalol
()

RSS подписка на новые темы