Size: a a a

2020 January 30

M

Mr.Mait in Qt
Просто может кто натыкался. Я видел всякие дефайны для драйверов линукса предугадывания условий if. Думал может тут что-то подобное есть. Если не знаете, тогда фиг с ним. Просто первый раз вижу такое явление
источник

BB

Bohdan Bessonov in Qt
Mr.Mait
Да. Все точь в точь как у стм32 сделал
Как по мне - выглядит как баг логики. Это типичная проблема, например, игр. Когда ФПС становится больше - персонаж двигается быстрее.  Решается просто - меряем время между двумя кадрами, умножаем на это значение
источник

ИI

И Ivan in Qt
Не знаю, относится к делу или нет, но QTimer-ы могут замедляться в зависимости от настроек системы. На маке такое наблюдал, что если приложение переходит "на задний фон", то qtimer начинает срабатывать через раз
источник

VK

Vernat Khisamov in Qt
кто-нибудь решал вопрос с подсветской строк в новом qml tableview?
источник

ИI

И Ivan in Qt
Так что полагаться на QTimer-ы я бы не стал
источник

M

Mr.Mait in Qt
Я думаю что попался на технологию интела https://xania.org/201602/bpu-part-two
источник

BB

Bohdan Bessonov in Qt
Не думаю, что её можно, и главное нужно отключать
источник

M

Mr.Mait in Qt
Bohdan Bessonov
Не думаю, что её можно, и главное нужно отключать
Да просто буду знать это явление при тестировании
источник

BB

Bohdan Bessonov in Qt
Mr.Mait
Да просто буду знать это явление при тестировании
Я предлагаю привязаться к времени всё же. В играх же это решается и не зависит от системы )
источник

SE

Suigintou45 E13 in Qt
Mr.Mait
Странный вопрос. Но все же. Можно ли как-то отключить предугадывания процессора алгоритмов?
Сейчас поясню всю суть.
Я программирую матричные панели с большим кол-вом панелей на stm32. Там делаю бегущую строку и всякие надписи. Использую библиотеку adafruit gfx, но она не оптимизирована, там ужасные алгоритмы используются.
Чтобы не мучиться на stm32 c отладкой и оптимизацией кода, написал стимуляцию дисплеев на Qt.
Перевел все методы этой библиотеки на Qt и теперь рисует точь в точь.
Сделал бегущую строку и вычисляю время выполнения рисования бегущей строки с помощью QElapsedTimer. Наносекунды переводил в милисекунды
Все отлично. Показывало мне 0-9 милисекунд в зависмости где находится текст (за экраном, в начале и т.д.)
Все оставил работать, ушел на 5 минут. Прихожу, вижу тесты показывают 0-2 милисекунды. Не понял в чем дело. Закрыл программу, запустил заново и теперь опять показывает тот же диапазон 0-2. Оптизация в компиляторе не стоит, код не менял, ничего не трогал.  
Пример программы, чтоб вы понимали
у этих таймеров гранулярность миллисекунд 10-50. нужно использовать что-нибудь более внешнее и точное
источник

RG

Renat Garaev in Qt
Sergey
В общем вот что в итоге:

#clang #cpp #qt
Сборка Qt из исходников с помощью clang на linux
1. Скачать с http://releases.llvm.org/download.html#9.0.0 необходимые pre-builts binaries для требуемой системы
2. Распаковать в /usr/local/clang-9.0.0
3. Прописать путь к компилятору в систему:
sudo ln -s /usr/local/clang-9.0.0/clang++ /usr/bin/clang++

4. Прописать путь к библиотекам клэнга:
export LD_LIBRARY_PATH=/usr/local/clang_9.0.0/lib:$LD_LIBRARY_PATH
ldconfig

5. Сконфигурировать qt:
cd /path/to/qt/sources
./configure -platform linux-clang -prefix ../qtclang -skip qtwebengine

Кому нужен вебэнджин - убрать -skip qtwebengine
6. Скомпилировать и собрать Qt
make -j8
make install

В моем случае в GUI у меня перестал отображаться текст.
Помогло следующее:
export QT_QPA_FONTDIR=/usr/share/fonts/truetype/ubuntu

Для сборки в windows алгоритм, думаю, будет тот же
Для Clang версии 9 (x86) и сборка Qt с кланг в windows для (target) x86 на 64 битной системе c OpenSSL

OpenSSL 32 битная отсюда https://slproweb.com/products/Win32OpenSSL.html

configure.bat -debug -recheck-all -I "C:/Program Files (x86)/OpenSSL-Win32/include" -L "C:/Program Files (x86)/OpenSSL-Win32/lib" -prefix H:/QtDebug514Clang -opensource -confirm-license -nomake examples -nomake tests -skip qtwebengine -platform win32-clang-msvc

#clang #cpp #qt #windows
источник

RG

Renat Garaev in Qt
@crackedmind спасибо за ссылку на ssl для линковок и подсказки со сборками)
источник

E雨

Elnee 雨 in Qt
Поскольку в Qt у QSqlDatabase есть статический метод для получения подключения по имени, нормально ли обернуть работу с БД в клас со статическими методами, чтобы не инстанцировать ничего и не решать проблемы агрегации или это будет плохой код?
источник

МВ

Макс Воробьев in Qt
а если для тестов потребуется подсунуть отдельную db ?
источник

IZ

Ilia Zviagin in Qt
Elnee 雨
Поскольку в Qt у QSqlDatabase есть статический метод для получения подключения по имени, нормально ли обернуть работу с БД в клас со статическими методами, чтобы не инстанцировать ничего и не решать проблемы агрегации или это будет плохой код?
А зачем оборачивать?
источник

E雨

Elnee 雨 in Qt
Ilia Zviagin
А зачем оборачивать?
Просто раскидать работу с базой по класам?
источник

M

Mr.Mait in Qt
Elnee 雨
Поскольку в Qt у QSqlDatabase есть статический метод для получения подключения по имени, нормально ли обернуть работу с БД в клас со статическими методами, чтобы не инстанцировать ничего и не решать проблемы агрегации или это будет плохой код?
Можно открыть бд и забыть об QSqlDatabase. QSqlQuery без QSqlDatabase использует стандартное подключение
источник

E雨

Elnee 雨 in Qt
Mr.Mait
Можно открыть бд и забыть об QSqlDatabase. QSqlQuery без QSqlDatabase использует стандартное подключение
Есть просто возможность, что подключений будет больше в будущем.
источник

IZ

Ilia Zviagin in Qt
Elnee 雨
Есть просто возможность, что подключений будет больше в будущем.
Нельзя просто так вот взять и добавить подключения...
источник

E雨

Elnee 雨 in Qt
Ilia Zviagin
Нельзя просто так вот взять и добавить подключения...
Да мне бы решить вопрос с тем как нормально организовать работу с БД. Инкапсулировать работу с БД в самих объектах или сделать класс со статическими методами
источник