Возможно ли подключить сигнал к статическому слоту без экземпляра приемника?

Возможно ли подключить сигнал к статическому слоту без экземпляра приемника?

Например так: connect(&object, SIGNAL(some()), STATIC_SLOT(staticFooMember()));

В документации Qt есть функция QApplication::closeAllWindows() с атрибутом [static slot]. И есть пример ее использования из документации:

exitAct = new QAction(tr("E&xit"), this);
exitAct->setShortcuts(QKeySequence::Quit);
exitAct->setStatusTip(tr("Exit the application"));
connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));

Можно ли сделать то же действие, но без передачи переменной экземпляра (например, когда класс имеет только статические функции)?

class Some : public QObject {
    Q_OBJECT
public slots:
    static void foo();
private:
    Some();
};

Возможно, Фрэнк Остерфельд прав и в этом случае лучше использовать паттерн singleton, но я все еще удивлен, почему эта возможность до сих пор не реализована.

Обновление:

В Qt 5 это возможно.

29
задан bartolo-otrit 2 December 2015 в 00:20
поделиться