Существует ли возможность в 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);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
С чем связано ограничение на объявление friend функций в локальных классах?
Вот про логику, как сделать сам MessageBox , я знаюВпихиваю код в деструктор:
Здравствуйте появилась проблема с поиском в документации информации :( А именно то, что я не нашел как поменять тип линии, ее цвет и как добавить...