Существует ли возможность в Qt посредством SIGNAL отследить, если было добавлено новое QWindow окно? Необходимо, чтобы определённый объект следил за появлением данных окон.
Готового сигнала нет. Но можно обрабатывать сообщения о создании виджетов. Для этого потребуется определить фильтр сообщений и подлючить его к объекту приложения QApplication.
Вот пример:
class WindowsMon: public QObject
{
Q_OBJECT;
public:
using QObject::QObject;
private:
bool eventFilter(QObject * target, QEvent * e) override;
public: signals:
void windowCreated(QWindow * w);
};
bool WindowsMon::eventFilter(QObject * target, QEvent * e)
{
if(e && QEvent::Create == e->type())
{
const auto window = qobject_cast<QWindow *>(target);
if(window) // смогли пребразовать к QWindow
{
emit windowCreated(window);
}
}
// на самом деле мы ничего не фильтруем, поэтому пробрасываем
// сообщения дальше, тем более что висим на QApplication
return QObject::eventFilter(target, e);
}
Подключение:
auto winmon = new WindowsMon(QCoreApplication::instance());
QCoreApplication::instance()->installEventFilter(winmon);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
С чем связано ограничение на объявление friend функций в локальных классах?
Вот про логику, как сделать сам MessageBox , я знаюВпихиваю код в деструктор:
Здравствуйте появилась проблема с поиском в документации информации :( А именно то, что я не нашел как поменять тип линии, ее цвет и как добавить...