Russian Qt Forum
Апрель 18, 2024, 10:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 188
1  Разное / Новости Qt сообщества / Re: Доступ к Qt : Март 09, 2022, 19:56
И да, раньше была инфа, что можно установить оффициальную Qt через online installer просто включив VPN на этапе валидации адреса, а потом типа можно продолжать установку отключив его.. Но теперь это не канает т.к. заблокировали https://download.qt.io.

Но возможно можно в MaintenanceTool вместо основного https://download.qt.io сконфигурить зеркала в качестве источников пакетов... Никто не пробовал?

PS: Еще можно попробовать просто скачивать предкомпиленные 7z архивы с зеркал и распаковывать куда надо (хотя хз, может оно еще патчится).
2  Разное / Новости Qt сообщества / Re: Доступ к Qt : Март 09, 2022, 19:50
А про какие исходники речь? Если зазипованные с qt.io, то есть же зеркала: https://download.qt.io/static/mirrorlist/

Ну а пока что на репах от GitHub, KDE и https://code.qt.io/cgit/ оно же доступно.
3  Программирование / Общий / Re: Программа для видеорегистратора : Февраль 08, 2022, 15:18
Я не уверен что на малинке у VLC есть аппаратное ускорение. Там еще его надо скомпилять под малинку (я хз, есть ли там VLC у нее в репах, и даже если есть то с аппараткой могут быть траблы).

Я бы на GStreamer посмотрел: http://4youngpadawans.com/stream-live-video-to-browser-using-gstreamer/
4  Qt / Qt Embedded / Re: Could not load the Qt platform plugin "eglfs" : Декабрь 20, 2021, 13:50
Могу дать совет - собирать BSP через Yocto. Иначе - все тлен. ))
5  Qt / Пользовательский интерфейс (GUI) / Re: Видео по сети : Октябрь 26, 2021, 21:29
Плюсую за г-стример, там не особо сложно. Но там надо выбирать спецом кодеки, для которых есть аппаратная поддержка, чтобы не грузить ЦПУ (ЕМНИП - в Gst SDK только софтварные кодеки идут).
6  Qt / Вопросы новичков / Re: Проблема с получением данных с помощью QSerialPort::waitForReadyRead() : Сентябрь 25, 2021, 16:05
Жаль что кутешники не выкинули эти блокирующие вызовы вообще из АПИ. Эти вызовы только все усложняют, как реализацию самих кутешных модулей, так и всего прочего.

Проще все делается на сигналах/слотах, я не понимаю, в чем проблема вообще?

1. Методом QSP:::write() пиши данные (шли команды/запросы)
2. В обработчике Foo::onReadyRead() парси пришедшие данные/ответы.

Код
C++ (Qt)
void Foo::sendDataRequest()
{
   ...
   serial->write(request);
   ...
}
 
void Foo::sendStatusRequest()
{
   ...
   serial->write(request);
   ...
}
 
void Foo::onReadyRead()
{
   m_packet += serial->readAll();
 
   // Проверяем пакет. Если приняли не полный пакет - выходим.
   if (notFullPackage())
       return;
 
   // Если пакет - есть ответ данных, то шлем запрос статуса.
   if (packageIsData()) {
       sendStatusRequest();
       return;
   }
 
   // Если пакет - есть ответ статуса, то делаем что-то еще.
   if (packageIsStatus()) {
       doSomething();
       return;
   }
}
 
Foo::onStartTransaction()
{
   sendDataRequest();
}
 

это в общих чертах. Что тут сложного то?
7  Qt / Общие вопросы / Re: Qt for Device Creation : Сентябрь 19, 2021, 20:25
Мы под LGPL все гнали, ее никто не отменял (хоть кофеварки, хоть холодильники, хоть десктопы).
8  Qt / Вопросы новичков / Re: Подвисает GUI при удерживании мышкой окна : Август 25, 2021, 09:42
Цитата: tux
А какой в этом великий смысл в мультиплатформенной библиотеке? Опять будет 100500 ifdef...

С точки зрения пользователя - он не заметит разницы.. Только заметит улучшения в том что не будут блокироваться события.
9  Qt / Вопросы новичков / Re: Подвисает GUI при удерживании мышкой окна : Август 24, 2021, 17:25
Цитата: Old
Я не пользуюсь вендой, но насколько я помню, это не исправить и отдельным потоком.

Не, все исправляется потоком. Там суть была в том, что раньше QSP использовал QWinOverlappedIoNotifier (на базе Windows IOCP подсистемы), и тогда все было нормуль... Потом кутешники решили выкинуть этот приватный класс  (типа им было влом его поддерживать) и перейти на alertable I/O (на основе {Read|Write}FileEx), на коллбеках. Я тоже перевел QSP на эти ф-ции. Но при этом да, начали блокироваться события при клике на заголовок окна или ресайзе окна. Там проблема в самом Qt event-loop, там шото накосячено и типа оно не может обрабатывать события от соседних фреймов/окон или как-то так. Там даже QTimer останавливался при кликах.

И там один чувак (по моему Антон Кудрявцев, ЕМНИП) пытался все пофиксить Qt evenl loop, там было дохрена всяких патчей.. Чем закончилось не знаю, но вроде они подлечили другой класс QWinEventNotifier чтобы он не останавливался при кликах и типа убрали что-ли ограничение на максимальное кол-во хендлов у треда (было вроде 64).

И теперь типо надо перевести QSP на этот  QWinEventNotifier, но никто этим заниматься не спешит (т.к. я тоже больше не поддерживаю QSP).

Так что вот так.  Грустный

Цитата: kkmple
в конструкторе mainwindow

Попробуй с чего нить простого. Например, просто выводи данные принимаемые QSP без всякой обработки и парсинга.

И там не нужно два объекта в тред сувать. Если твой класс ComPort является враппером над QSP, то достаточно:

1. В QSP установить парентом ComPort в конструкторе
2. Достаточно мувнуть только один ComPort в тред

Цитата: kkmple
С помощью Qtimer c частотой 10мс я обновляю виджеты.

Гы, а ты проверь шо и таймер не останавливается при кликах (раньше такое было)  Улыбающийся
10  Qt / Общие вопросы / Re: Проблемы с VCP в Windows : Август 05, 2021, 15:14
А попробуй ка пошаманить в COMMTIMEOUTS через QSerialPort::handle(), естественно, после открытия и настройки порта
11  Qt / Общие вопросы / Re: Проблемы с VCP в Windows : Август 04, 2021, 21:05
Цитировать
Т.е. при использовании WinAPI таких траблов в маздае нет, а с QSerialPort есть. (((

Ну, как бы QSerialPort юзает то самое винапи... Сейчас оно юзает ReadFileEx/WriteFileEx ф-ции...
Ты попробуй с ними, а также открой в overlapped режиме, чтоб честно было ))

ЗЫ: Я больше не занимаюсь сериал портом, не сопровождаю его. Так что спрашивай у кутешников
теперь к ним все претензии (они там вроде хотели кишки под винду подшаманить). Там наверно
теперь кто-то из них должен тянуть этот модуль (ну, или выкинут его вообще) Подмигивающий
12  Qt / Общие вопросы / Re: Проблемы с VCP в Windows : Август 04, 2021, 11:13
Вендопроблемы.

Из моего опыта, выдернутый ком порт остается "занятым" некоторое время (по крайней мере в течении минуты или как то так). Хотя, хз, многое зависит от драйвера.

Как вариант - кикать "зависшее" у-во программно через WinAPI функции, но для этого нужны права админа... Но это дичь какая то. Улыбающийся
13  Qt / Вопросы новичков / Re: QTimer::singleShot и удаление объекта : Июль 09, 2021, 17:15
Цитата: cpp
QTimer::singleShot(100, this, [this]
    {
            qDebug() << "singleshot";
            ui->Indicator->setValue(0);
    });

?
14  Программирование / Алгоритмы / Re: Определить конечный угол вращения составного объекта : Март 19, 2021, 16:18
Я даже картинки приататчил.

И вот код (QML):

Код
import Qt3D.Core 2.0
import Qt3D.Extras 2.15
import Qt3D.Input 2.0
import Qt3D.Render 2.15
 
import QtQuick.Scene3D 2.0
 
Scene3D {
   focus: true
   aspects: ["input", "logic"]
   cameraAspectRatioMode: Scene3D.AutomaticAspectRatio
 
   property alias bigCubeRotationX: bigCuberansform.rotationX
   property alias bigCubeRotationZ: bigCuberansform.rotationZ
   property alias smallCubeRotationY: smallCuberansform.rotationY
 
   function calculateMatrix(bigMatrix, smallMatrix) {
       detector.setupObjectMatrix(bigMatrix, smallMatrix);
   }
 
   Entity {
       components: [
           RenderSettings {
               activeFrameGraph: ForwardRenderer {
                   camera: camera
                   clearColor: "white"
               }
           },
           InputSettings { }
       ]
 
       Camera {
           id: camera
           projectionType: CameraLens.PerspectiveProjection
           fieldOfView: 45
           position: Qt.vector3d(0.0, 1, 3.0)
           upVector: Qt.vector3d(0.0, 1.0, 0.0)
           viewCenter: Qt.vector3d(0.0, 0.0, 0.0)
       }
 
       FirstPersonCameraController {
           camera: camera
           linearSpeed: 10.0
           acceleration: 5.0
           deceleration: 5.0
       }
 
       Entity {
           components: [
               PointLight {},
               Transform { translation: camera.position }
           ]
       }
 
       Entity {
           components: [
               CuboidMesh {
                   xExtent: 1
                   yExtent: 0.2
                   zExtent: 0.5
               },
               Transform {
                   id: bigCuberansform
                   onMatrixChanged: calculateMatrix(bigCuberansform.matrix, smallCuberansform.matrix)
               },
               PhongAlphaMaterial {
                   alpha: 0.8
                   diffuse: "red"
               }
           ]
 
           Entity {
               components: [
                   CuboidMesh {
                       xExtent: 0.5
                       yExtent: 0.1
                       zExtent: 0.2
                   },
                   Transform {
                       id: smallCuberansform
                       onMatrixChanged: calculateMatrix(bigCuberansform.matrix, smallCuberansform.matrix)
                   },
                   PhongAlphaMaterial {
                       alpha: 0.8
                       diffuse: "green"
                   }
               ]
           }
       }
   }
}
 
 

И CPP:

Код
C++ (Qt)
void OrientationDetector::setupObjectMatrix(const QMatrix4x4 &matrix1, const QMatrix4x4 &matrix2)
{
   QMatrix4x4 m =  matrix1 * matrix2;
   QVector3D gravity(0, -1, 0);
   QVector3D v = m.mapVector(gravity);
   qDebug() << v;
}
 

15  Программирование / Алгоритмы / Re: Определить конечный угол вращения составного объекта : Март 19, 2021, 15:24
Цитата: Igors
Если есть отношение parent-child, то матрица чайлда может уже и включать матрицу парента,

К сожалению, не включает.

Цитата: Igors
Если нет, то просто перемножить матрицы.

Да, спс, я попробовал так:

Код
C++ (Qt)
   QMatrix4x4 m =  matrix1 * matrix2;
   QVector3D gravity(0, -1, 0);
   QVector3D v = m.mapVector(gravity);
   qDebug() << v;
 

но почему то это не работает в случае, если :

0. Начальная позиция - все ок, вектор гравитации вдоль оси Y - QVector3D(0, -1, 0)
1. Потом повернули большой куб вокруг оси X - на 90 град - все ок, теперь вектор гравитации вдоль оси Z - QVector3D(0, 0, -1)
2. Теперь вращаем малый куб вокруг оси Y - и результат не меняется, хотя теперь вектор гравитации должен распределяться между осями X и Z

Может надо еще что-то делать с матрицами, а не только перемножать?

Цитата: Igors
Собсно это то за что и матюкают углы Эйлера (и хвалят кватернионы)

И как их можно использовать? Есть мысли? т.к. у каждого объекта также есть свойство `rotation`, которое является кватернионом.


Страниц: [1] 2 3 ... 188

Страница сгенерирована за 0.112 секунд. Запросов: 24.