Qt里的 connect() 函式,想再寫個函式包裝一下,但是檔案上面這個引數看不懂了:
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type = Qt::AutoConnection) const
QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection)
[static] QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
[static] QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type = Qt::AutoConnection)
主要就是槽函式對應的位置:
Functor、const char *method 應該用什么形式傳入引數?
uj5u.com熱心網友回復:
const char *method 可以了
SLOT(func())
這樣就行。
那 Functor 是什么,怎么傳入?
uj5u.com熱心網友回復:
connect不太適合包裝,因為它大量使用了函式多載和模板,Functor和PointerToMemberFunction都是用模板的,可以傳各種型別的引數,包裝反而會限制可傳入的引數uj5u.com熱心網友回復:
你如果是用傳統的SIGNAL-SLOT,人家的引數就只是函式簽名字串,這個不影響你包裝,在實際的編譯時,uic會去根據你的函式簽名字串生成代碼然后編譯。當然,你也可用用新得那版,用函式指標轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/9233.html
標籤:Qt
上一篇:控制臺報錯SyntaxError: Invalid regular expression: invalid group specifier name
