2013-07-18 76 views

回答

3

它在那裏,通常在setupUi方法的結尾。只是看起來更好。

例如,這個塊在的.ui

<connections> 
    <connection> 
    <sender>checkBox</sender> 
    <signal>toggled(bool)</signal> 
    <receiver>checkBox_2</receiver> 
    <slot>setChecked(bool)</slot> 
    </connection> 
</connections> 

結果

QObject::connect(checkBox, SIGNAL(toggled(bool)), checkBox_2, SLOT(setChecked(bool))); 

在所生成的報頭中。

+0

我覺得這也是值得一提的是QT/MOC的某些版本將調用到呼叫[QMetaObject :: connectSlotsByName(主窗口)(https://qt-project.org/doc/qt- 5.0/qtcore/qmetaobject.html#connectSlotsByName) - 特別是對於UI部分 – Huy

+0

這不是「某些版本的Qt/MOC」。所有由'uic'生成的頭文件都會有這樣的調用,通常在'setupUi'生成的函數末尾。 – peppe

0

的元對象編譯器(MOC)生成用於信號和槽膠水代碼。 UI編輯器只處理連接並向ui文件發送必要的內容。 Uic將這些東西編譯成C++頭文件,然後用於我的moc。