工作中沒有小事:點石成金,滴水成河,只有認真對待自己所做的一切事情,才能克服萬難,取得成功。
轉載:https://blog.csdn.net/hellokandy/article/details/105100563
在項目開發中,一點開發經驗總結。
使用VS的QT助手生成測試工程的時候,在自動生成的ui_XXXXXX.h中,在setupUi函數的最後 QMetaObject::connectSlotsByName(XXXXX);有這樣一句話,平時沒怎麼留意過,在此記錄一下
查看幫助文檔
大概意思是:
遞歸搜索給定對象的所有子對象,並將來自這些子對象的匹配信號連接到以下形式的對象插槽:
void on_<object name>_<signal name>(<signal parameters>);
假設有一個類型爲QPushButton的對象,對象ObjectName爲button1,捕捉按鈕的clicked()信號的槽是:
void on_button1_clicked();
就可以不用寫connect函數來連接信號和槽,自動會觸發槽函數。
具體步驟:
1. QPushButton* pBtn =new QPushButton(); pBtn->setObjectName(QStringLiteral("button1")); 2.protected Q_SLOTS: void on_button1_clicked(); 3.QMetaObject::connectSlotsByName(QPushButton);