14 template<
class classT>
15 WidgetModule(
const QString &name,
const QString &displayName, classT *receiver,
void (classT::*callback)(T *), QObject *parent =
nullptr)
16 : DCC_NAMESPACE::ModuleObject(name, displayName, parent)
18 connect(receiver, callback);
20 template<
typename FunT>
21 WidgetModule(
const QString &name,
const QString &displayName, FunT callback, QObject *parent =
nullptr)
22 : DCC_NAMESPACE::ModuleObject(name, displayName, parent)
24 auto fun = [](QWidget *w, FunT callback) {
25 T *tWidget =
static_cast<T *
>(w);
28 m_callback = std::bind(fun, std::placeholders::_1, callback);
30 WidgetModule(
const QString &name = QString(),
const QString &displayName = QString(), QObject *parent =
nullptr)
31 : DCC_NAMESPACE::ModuleObject(name, displayName, parent)
35 template<
class classT>
36 void connect(classT *receiver,
void (classT::*callback)(T *))
38 auto fun = [](QWidget *w, classT *receiver, void (classT::*callback)(T *)) {
39 T *tWidget =
static_cast<T *
>(w);
40 (receiver->*callback)(tWidget);
42 m_callback = std::bind(fun, std::placeholders::_1, receiver, callback);
45 virtual QWidget *
page()
override
47 QWidget *widget =
new T();
54 std::function<void(QWidget *)> m_callback;