Size: a a a

2020 March 22

BB

Bohdan Bessonov in Qt
Mysle
Доброе утро. Использую для сборки в проект dll (windeployqt.exe --quick .). По идее должно все работать у клиента. Но при запуске выдает ошибку отсутствия VCRUNTIME140_1.dll. Проблема решается переустановкой всех пакетов vs c++ на более новую версию (при этом версии 2012 года допустим там уже были), либо добавлением этого dll в папку с проектом. Как решить данную проблему? Нормально ли просто добавить этот dll в папку с проектом или это может повлечь какие - то ошибки? При том, что у меня проект запускается без этого dll в папке, тобишь система сама находит нужные длл. Может там есть какие - то зависимости? Достаточно ссылки на статью, если лень объяснять. Не смог накопать ответы на все свои вопросы.
Поставляй с программой vcredist установщик
источник

BB

Bohdan Bessonov in Qt
windeployqt копирует кутэшные либы
Либы мсвц кутэ не деплоит ровно как и не деплоит либы опенссл например
источник

BB

Bohdan Bessonov in Qt
Mysle
Доброе утро. Использую для сборки в проект dll (windeployqt.exe --quick .). По идее должно все работать у клиента. Но при запуске выдает ошибку отсутствия VCRUNTIME140_1.dll. Проблема решается переустановкой всех пакетов vs c++ на более новую версию (при этом версии 2012 года допустим там уже были), либо добавлением этого dll в папку с проектом. Как решить данную проблему? Нормально ли просто добавить этот dll в папку с проектом или это может повлечь какие - то ошибки? При том, что у меня проект запускается без этого dll в папке, тобишь система сама находит нужные длл. Может там есть какие - то зависимости? Достаточно ссылки на статью, если лень объяснять. Не смог накопать ответы на все свои вопросы.
У тебя запускается, потому что еще на этапе установки вижл студии эти дллки (msvcrt) залетели в систему
источник

M

Mysle in Qt
Bohdan Bessonov
У тебя запускается, потому что еще на этапе установки вижл студии эти дллки (msvcrt) залетели в систему
Понял, опенссл тоже нет, как оказалось. Спасибо за ответ
источник

BB

Bohdan Bessonov in Qt
Mysle
Понял, опенссл тоже нет, как оказалось. Спасибо за ответ
Я ж и говорю
Ссл я поставляю у себя бинари (указав лицензию рядом в тхт)
Редисты проще всего просто класть инсталлер вижл студио редистрибутабле рядом с приложением в папке redist
источник

КС

Камикото Судзуки ☘️ in Qt
а можете направить на детальное взаимодействие qt quick с c++? мне нужен доступ к элементам и на чтение, и на изменение. например, дополнение chield'ами. с реакциями на нажатия кнопки, я понял, как работать. среди примеров нашел разве что declarativewindow, в котором можно все это можно делать. но это самый адекватный способ или есть решения получше?
источник

L

LaRusCat in Qt
@dmatseku
Самый правильный вариант — регистрация С++ типов в QML и дерганье Q_INVOKABLE методов или Q_PROPERTY свойст С++ обьектов из QML
https://doc.qt.io/qt-5/qtqml-cppintegration-overview.html (про регистрацию)
https://doc.qt.io/qt-5/qtqml-cppintegration-topic.html (простой примерчик с пропертьой)

Но если ты хочешь с КМЛ "создавать обьекты"... то лучше это не делать именно на КМЛ стороне.
Если у тебя коллекция обьектов и тебе нужно удалять или добавлять туда єлементы, то лучше на С++ стороне сделать модель а на КМЛ стороне уже с ней как-то взаимодействовать(по сути там можно будет и добавлять обьекты)
Вот пример работы с моделью
https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

Но вообще лучше хорошо разобраться с самой концепцией Model View Delegate, иначе туго будет
Но и навелосипедить простое создание C++ обьектов из QML "в лоб" тоже можно.. но не стоит
источник

КС

Камикото Судзуки ☘️ in Qt
LaRusCat
@dmatseku
Самый правильный вариант — регистрация С++ типов в QML и дерганье Q_INVOKABLE методов или Q_PROPERTY свойст С++ обьектов из QML
https://doc.qt.io/qt-5/qtqml-cppintegration-overview.html (про регистрацию)
https://doc.qt.io/qt-5/qtqml-cppintegration-topic.html (простой примерчик с пропертьой)

Но если ты хочешь с КМЛ "создавать обьекты"... то лучше это не делать именно на КМЛ стороне.
Если у тебя коллекция обьектов и тебе нужно удалять или добавлять туда єлементы, то лучше на С++ стороне сделать модель а на КМЛ стороне уже с ней как-то взаимодействовать(по сути там можно будет и добавлять обьекты)
Вот пример работы с моделью
https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

Но вообще лучше хорошо разобраться с самой концепцией Model View Delegate, иначе туго будет
Но и навелосипедить простое создание C++ обьектов из QML "в лоб" тоже можно.. но не стоит
про первую часть и так понятно, вопросов не возникало. про вторую часть - кроме как C++ другого толкового варианта и нет) просто были интересны некоторые моменты, но последняя ссылка помогает. спасибо)
источник

КС

Камикото Судзуки ☘️ in Qt
где-то говорят один метод плох, где-то юзают и как-то путает
источник

L

LaRusCat in Qt
В основном зависит от задачи. Но модел вью для управлением коллекциями элементов(удаление, добавление) и их отображением явно будет лучше всего. Может прийдется немного кода лишнего написать, но только на стороне С++. Логика и интерфейс пользователя будут разделены, что правильно.
Пожалуйста)
источник

B

Bogdasar in Qt
Есть QAbstractListModel, а для добавления элементов в неё я использую Q_INVOKABLE метод. А вроде как правильно использовать insertRow(), но как вызвать его из QML?
источник

AS

Anatoly Shirokov in Qt
Bogdasar
Есть QAbstractListModel, а для добавления элементов в неё я использую Q_INVOKABLE метод. А вроде как правильно использовать insertRow(), но как вызвать его из QML?
Он ничего не делает insertRow и т.п., надо в своем модели их имплементить. А так делают свой набор CRUD методов в модели и делают их Q_INVOKABLE
источник

B

Bogdasar in Qt
Anatoly Shirokov
Он ничего не делает insertRow и т.п., надо в своем модели их имплементить. А так делают свой набор CRUD методов в модели и делают их Q_INVOKABLE
Это понятно, что их надо имплементить. Прост в документации написано, что этот метод нужен для вставки элементов в модель, а у меня сейчас просто свой метод Q_INVOKABLE add(const Contact& cont). Это норм так делать? Или есть вариант получше?
источник

AS

Anatoly Shirokov in Qt
Bogdasar
Это понятно, что их надо имплементить. Прост в документации написано, что этот метод нужен для вставки элементов в модель, а у меня сейчас просто свой метод Q_INVOKABLE add(const Contact& cont). Это норм так делать? Или есть вариант получше?
норм
источник

S

Serj in Qt
Привет, подскажите пожалуйста как, и можно ли, управлять внешним видом emoji. В зависимости от системы, на которой запускается приложение emoji выглядят по разному. Можно сделать так, чтобы в любом случае они выглядели одинаково?
Первое изображение - KDE5, второе - Windows.
источник

S

Serj in Qt
источник

S

Serj in Qt
Serj
Привет, подскажите пожалуйста как, и можно ли, управлять внешним видом emoji. В зависимости от системы, на которой запускается приложение emoji выглядят по разному. Можно сделать так, чтобы в любом случае они выглядели одинаково?
Первое изображение - KDE5, второе - Windows.
Шрифт на обоих изображения один и тот же - Noto Sans
источник

В

Влад in Qt
т.е. если я создал свой add метод в модели, я не должен внутри вызывать beginInsertRows и после добавления endInsertRows??

не понял
источник

AS

Anatoly Shirokov in Qt
Влад
т.е. если я создал свой add метод в модели, я не должен внутри вызывать beginInsertRows и после добавления endInsertRows??

не понял
Должен
источник

m

mefest in Qt
Влад
т.е. если я создал свой add метод в модели, я не должен внутри вызывать beginInsertRows и после добавления endInsertRows??

не понял
Лучше почитать в доке что делают эти методы. Но если коротко без них view не увидит изменений в модели
источник