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