от QObject сигналы screenAdded и screenRemoved не работают. Если же наследоваться от QWidget и в main вызвать screen_controller.show() (обозначено в коде [2]), то все работает?
https://pastebin.com/FqByhP5U
Вроде, должно работать.Передай ссылку на QApplication в конструктор: явная зависимость лучше неявной.
А кто посылает этим сигналы? Тот код вполне может хотеть слать этот сигнал только экранным объектам, то есть виджетам. Вот и фильтрует
Да, оно работает, просто ты ниодного окна не открывешь
проверил. не работает
без виджетов нельзя его использовать?
Работает, покажи хотя бы одно окно
да, я понял с окнами. Т.е если я даже внутри класса ScreenController создаю какой-то виджет и отображаю его, то все работает. Но а что если это приложение без окон. Просто в лог пишет когда экран подключают и отключают, то это уже работать не будет?
В доку иди, там описаны эти сигналы
в доке ничего особенного нет 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 ничего не открывает, то и не будет скринов, к которым это приложение подсоединено. нет?
не Screens возвращает нормально в конструкторе. Удалил этот код из примера
Обсуждают сегодня