Если уж прям такая необходимость соединять сигналы с не мембер функциями, можете воспользоваться сторонними либами, например boost::signals, libsigc++ (которая, кстати используется в gtkmm) или libssc
В последнем случае это будет выглядеть так:
C++ (Qt)
class SomeClass
{
//...
ssc::signal<void> clicked;
slots:
void buttonClick() { clicked(); }
QPushButton *m_btn;
};
// Далее в конструкторе класса SomeClass:
SomeClass::SomeClass()
{
m_btn = new QPushButton("click me!");
//...
connect(m_btn, SIGNAL(clicked()), this, SLOT(buttonClick()));
clicked.connect(someFunction);
}
И будет вам счастье)