Size: a a a

2021 January 21

AS

Anatoly Shirokov in Qt
Aleksandr Bazhenov
Друзья! Объясните, пожалуйста, по прикрепленному коду. Почему когда я наследуюсь от QObject сигналы screenAdded и screenRemoved не работают. Если же наследоваться от QWidget и в main вызвать screen_controller.show() (обозначено в коде [2]), то все работает?

https://pastebin.com/FqByhP5U
Да, оно работает, просто ты ниодного окна не открывешь
источник

AB

Aleksandr Bazhenov in Qt
Anatoly Shirokov
Вроде, должно работать.Передай ссылку на QApplication в конструктор: явная зависимость лучше неявной.
проверил. не работает
источник

AB

Aleksandr Bazhenov in Qt
Ilia Zviagin
А кто посылает этим сигналы?

Тот код вполне может хотеть слать этот сигнал только экранным объектам, то есть виджетам.
Вот и фильтрует
без виджетов нельзя его использовать?
источник

AS

Anatoly Shirokov in Qt
Aleksandr Bazhenov
проверил. не работает
Работает, покажи хотя бы одно окно
источник

AS

Anatoly Shirokov in Qt
И тогда сработает твоя подписка
источник

AS

Anatoly Shirokov in Qt
w.show() - как раз оно
источник

AS

Anatoly Shirokov in Qt
Для этого не надо наследоваться от QWidget
источник

AB

Aleksandr Bazhenov in Qt
Anatoly Shirokov
Работает, покажи хотя бы одно окно
да, я понял с окнами. Т.е если я даже внутри класса ScreenController создаю какой-то виджет и отображаю его, то все работает. Но а что если это приложение без окон. Просто в лог пишет когда экран подключают и отключают, то это уже работать не будет?
источник

AB

Aleksandr Bazhenov in Qt
Хочется понять где затык происходит в Qt?
источник

AS

Anatoly Shirokov in Qt
Aleksandr Bazhenov
да, я понял с окнами. Т.е если я даже внутри класса ScreenController создаю какой-то виджет и отображаю его, то все работает. Но а что если это приложение без окон. Просто в лог пишет когда экран подключают и отключают, то это уже работать не будет?
В доку иди, там описаны эти сигналы
источник

AS

Anatoly Shirokov in Qt
Не ищи смысл там куда не клал
источник

AS

Anatoly Shirokov in Qt
Ilia Zviagin
А кто посылает этим сигналы?

Тот код вполне может хотеть слать этот сигнал только экранным объектам, то есть виджетам.
Вот и фильтрует
Фигню написал
источник

AB

Aleksandr Bazhenov in Qt
Anatoly Shirokov
В доку иди, там описаны эти сигналы
в доке ничего особенного нет

void QGuiApplication::screenAdded(QScreen *screen)
This signal is emitted whenever a new screen screen has been added to the system.

Но вот случай-то вполне рабочий, не надуманный, получать эти сигналы без виджетов
источник

AS

Anatoly Shirokov in Qt
Aleksandr Bazhenov
в доке ничего особенного нет

void QGuiApplication::screenAdded(QScreen *screen)
This signal is emitted whenever a new screen screen has been added to the system.

Но вот случай-то вполне рабочий, не надуманный, получать эти сигналы без виджетов
Тогда следующая фаза: изучение сырцов
источник

AS

Anatoly Shirokov in Qt
Посмотри условия эмита сигнала в исходных кодах Qt
источник

IZ

Ilia Zviagin in Qt
Anatoly Shirokov
Фигню написал
Ну это предположение было..
источник

AS

Anatoly Shirokov in Qt
Ilia Zviagin
Ну это предположение было..
Ну, ок, фиговое предположение
источник

AS

Anatoly Shirokov in Qt
Aleksandr Bazhenov
в доке ничего особенного нет

void QGuiApplication::screenAdded(QScreen *screen)
This signal is emitted whenever a new screen screen has been added to the system.

Но вот случай-то вполне рабочий, не надуманный, получать эти сигналы без виджетов
Просто, если читать доку и по другим методам:
[static]QList<QScreen *> QGuiApplication::screens()
Returns a list of all the screens associated with the windowing system the application is connected to.

если application ничего не открывает, то и не будет скринов, к которым это приложение подсоединено. нет?
источник

AB

Aleksandr Bazhenov in Qt
Anatoly Shirokov
Просто, если читать доку и по другим методам:
[static]QList<QScreen *> QGuiApplication::screens()
Returns a list of all the screens associated with the windowing system the application is connected to.

если application ничего не открывает, то и не будет скринов, к которым это приложение подсоединено. нет?
не Screens возвращает нормально в конструкторе. Удалил этот код из примера
источник

Д

Дмытрык in Qt
Добрый день, мне нужна ваша помощь.

Чем обычные переменные отличаются от индикаторных переменных и как устроены структурные переменные и объединения?
источник