先有QWidget然后setLayout,然后在layout上添加widget
關于信號和曹,,,
本質(zhì)上來說他們都是只是兩個函數(shù)而已。
×信號是一個比較特殊的函數(shù),我們只負責聲明,其實實現(xiàn)是在moc的生成的代碼中根據(jù)connect時候給定的參數(shù)不同而不同,這牽扯進QT內(nèi)部一些moc核心之類的。
只得注意的是,signal solt函數(shù)為虛函數(shù)的時候需要一些頭疼。
再有SIGNAL SOLT是moc宏,而不是C宏。
connect實際上接收的是兩個字符串
有參數(shù)的信號艸需要在connect的時候指定參數(shù),而且信號的參數(shù)需要等于(測試得出)槽的參數(shù)。參數(shù)聲明的方式相當于函數(shù)參數(shù)聲明去掉類型:
connect(this, SIGNAL(testSigned(CalculatorEx *)), this, SLOT(digitClicked(CalculatorEx *)));
匹配錯誤是得不到任何警告或者錯誤信息的,只是信號艸不起作用而已,,,
signal有一個擴展關鍵字 emit,最好使用這個,時刻提醒自己這個是信號
在solt中可以用 qobject_cast<TSender *>(sender()); 獲取到發(fā)射對象的指針,,,
綜上所述,QT其實只是看起來漂亮其實比MFC丑陋得多