Size: a a a

2021 February 10

AU

Abu Umar in Qt
Grigorii Kolesnikov ☭
есть такой шаблон проектирования Observer. Возможно он вам поможет?
Observer это ж и есть сигналы слоты
источник

OA

Ostrizhniy Alexey in Qt
XLA NNM
Всем привет, прошу помощи. Имеется многооконное приложение, где многие виджеты связаны друг с другом. Например, в одном из окон происходит изменение настроек, соответственно главное окно должно сразу после нажатия кнопки считать их. Или же виджет, где идёт запись новой строки в базу данных, а виджет с отображением базы должен сразу обновиться. Сделано сейчас через коннекты в главном окне, там виджеты задаются через new, коннектов этих уже довольно много. Вроде бы все работает правильно, но никак не разберусь насколько это оптимально и как лучше сделать?
Синглтон класса настроек с методом void subscribe(QObject*) и сигналом void settings_changed();. Все классы виджетов реализуют слот onSettingsChanged(), и в конструкторе вызывают instanсу settings и subscribe. Этого по идее должно хватить.
источник

GK

Grigorii Kolesnikov ... in Qt
причем передав указатель на класс настроек подписчику при регистрации, можно сделать что бы любой из подписчиков смог быть инициатором сигнала settings_changed()...
источник

GK

Grigorii Kolesnikov ... in Qt
Ostrizhniy Alexey
Синглтон класса настроек с методом void subscribe(QObject*) и сигналом void settings_changed();. Все классы виджетов реализуют слот onSettingsChanged(), и в конструкторе вызывают instanсу settings и subscribe. Этого по идее должно хватить.
возможно лучше вместо синглтона стоит сипользовать shared_pointer?
Подписчики хранят указатели внутри. когда их не остается объект уничтожается. Последним кстати вроде бы уничтожится главное окно.
источник

OA

Ostrizhniy Alexey in Qt
Grigorii Kolesnikov ☭
возможно лучше вместо синглтона стоит сипользовать shared_pointer?
Подписчики хранят указатели внутри. когда их не остается объект уничтожается. Последним кстати вроде бы уничтожится главное окно.
Возможно. Если бы я хоть раз его использовал, может быть так и сказал. А так синглтон вполне себе работающее решение. Деструктор класса синглтона вполне себе можно привязать к сигналу от qApp.
источник

SS

Sergey Sobolev in Qt
такой вопрос: есть ли принципиальная разница между QScopedPtr и unique_ptr, QSharedPtr и shared_ptr? Я правильно понимаю, что они лучше взаимодействуют с COW конейнерами qt? Потому что в QList unique_ptr не получается хранить по причине копирования в случае записи
источник

M

Mr.Mait in Qt
Sergey Sobolev
такой вопрос: есть ли принципиальная разница между QScopedPtr и unique_ptr, QSharedPtr и shared_ptr? Я правильно понимаю, что они лучше взаимодействуют с COW конейнерами qt? Потому что в QList unique_ptr не получается хранить по причине копирования в случае записи
источник

vs

vadim skurat in Qt
всем привет, может быть кто-то сталкивался с тем, что при деплое qt аппликухи через windeployqt не копируется msvc рантайм?
источник

AS

Anatoly Shirokov in Qt
vadim skurat
всем привет, может быть кто-то сталкивался с тем, что при деплое qt аппликухи через windeployqt не копируется msvc рантайм?
--compiler-runtime        Deploy compiler runtime (Desktop only).
источник

vs

vadim skurat in Qt
Anatoly Shirokov
--compiler-runtime        Deploy compiler runtime (Desktop only).
пробовал, эта штука позволяет скопировать инсталлер рантайма, а не сами либы
источник

AS

Anatoly Shirokov in Qt
vadim skurat
пробовал, эта штука позволяет скопировать инсталлер рантайма, а не сами либы
The correct way to include the runtime libraries with your application is to ensure that they are installed on the end-user's system.

To install the runtime libraries on the end-user's system, you need to include the appropriate Visual C++ Redistributable Package (VCRedist) executable with your application and ensure that it is executed when the user installs your application.

They are named vcredist_x64.exe (64-bit) or vcredist_x86.exe (32-bit) and can be found in the folder <Visual Studio install path>/VC/redist/<language-code>.
источник

AB

Alex B. in Qt
Был проект на 5.14 конструкции вида Listview{ delegate: Item{ anchors.left = parent.left}} нормально работали, а при переходе на 5.15 начали сыпаться ошибки "TypeError: Cannot read property 'left' of null", може подскажете, что не так
источник

AB

Alex B. in Qt
Anatoly Shirokov
The correct way to include the runtime libraries with your application is to ensure that they are installed on the end-user's system.

To install the runtime libraries on the end-user's system, you need to include the appropriate Visual C++ Redistributable Package (VCRedist) executable with your application and ensure that it is executed when the user installs your application.

They are named vcredist_x64.exe (64-bit) or vcredist_x86.exe (32-bit) and can be found in the folder <Visual Studio install path>/VC/redist/<language-code>.
Путь правильный, но в конктексте установки приложения в профиль без прав администратора (как Onedrive от MS в винде) такое не катит и приходится тянуть либы с собой
источник

RG

Renat Garaev in Qt
vadim skurat
всем привет, может быть кто-то сталкивался с тем, что при деплое qt аппликухи через windeployqt не копируется msvc рантайм?
Можно пересобрать Qt из исходников, с опцией -static-runtime , чтобы не требовал VC Redist, но получить более толстое приложение.
источник

ee

elias eliatto in Qt
Есть ли удобные средства диагностики лейаутов? чтобы наглядно отобразить спейсинги, марджины. Может, gammaray подойдет?
источник

vs

vadim skurat in Qt
Renat Garaev
Можно пересобрать Qt из исходников, с опцией -static-runtime , чтобы не требовал VC Redist, но получить более толстое приложение.
статическая сборка qt пока что не годится из-за условий lgpl
источник

RG

Renat Garaev in Qt
vadim skurat
статическая сборка qt пока что не годится из-за условий lgpl
Значит пользователь должен будет установить VC Redist 2015
источник

AS

Anatoly Shirokov in Qt
Alex B.
Путь правильный, но в конктексте установки приложения в профиль без прав администратора (как Onedrive от MS в винде) такое не катит и приходится тянуть либы с собой
этот рантайм еще и обновляется MS, поэтому установка на машину предпочтительна. у нас были случаи, когда локально лежащий рантайм ломался и мы в конечном итоге отказались от рядом лежащих dll от рантайма
источник

AB

Alex B. in Qt
Anatoly Shirokov
этот рантайм еще и обновляется MS, поэтому установка на машину предпочтительна. у нас были случаи, когда локально лежащий рантайм ломался и мы в конечном итоге отказались от рядом лежащих dll от рантайма
У нас тоже. Но пока не отказались
источник

AB

Alex B. in Qt
Alex B.
Был проект на 5.14 конструкции вида Listview{ delegate: Item{ anchors.left = parent.left}} нормально работали, а при переходе на 5.15 начали сыпаться ошибки "TypeError: Cannot read property 'left' of null", може подскажете, что не так
Может все ж кто встречал такое?
источник