Qt因為訊號名相同產生二義性錯誤解決方法

2021-10-01 18:42:02 字數 952 閱讀 6774

//qt因為訊號名相同產生的二義性/

例如:子視窗給主視窗傳送兩個訊號:

/子視窗**片段

/*定義訊號,函式過載

signals:

void subsignal(); //訊號1無參訊號

void subsignal(int,qstring);//訊號2帶參訊號

*/connect(&openminwidget,&qpushbutton::pressed,this,&subwidget::myslot);

/*定義槽函式

void subwidget::myslot()

*//主視窗**片段

//處理子視窗訊號

connect(&subwidow,&subwidget::subsignal,this,&mainwidget::switchmainwidgetslot);

//處理子視窗帶參訊號

connect(&subwidow,&subwidget::subsignal,this,&mainwidget::recvsubwidgetargumentsignal);

編譯發生錯誤!

錯誤原因:因為子視窗傳送過來兩個訊號,乙個有參訊號,乙個無參訊號,編譯器無法確定signal是哪乙個訊號,因此產生二義性。

解決辦法:利用函式指標來解決

void (subwidget::*funsignal1)() = &subwidget::subsignal;

!connect(&subwidow,funsignal1,this,&mainwidget::switchmainwidgetslot);

void (subwidget::*funsignal2)(int,qstring) = &subwidget::subsignal;

connect(&subwidow,funsignal2,this,&mainwidget::recvsubwidgetargumentsignal);

easypoi匯入excel檔案列名相同的處理方案

獨特的功能 官方demo 官網例項工程 easypoi test 在匯入指定excel模板的過程中,可能會碰到列名重複的問題,當我們使用easypoi的註解方式進行匯入時,會發現出現丟失資料的情況,原因是原始碼在解析註解對映關係的時候,使用的map進行儲存,當實體的註解存在相同名稱時,key會被重新...

相乘 相同頻率訊號 解密IQ訊號

要了解iq訊號我們首先來了解為什麼現在的射頻晶元都無一例外地採用iq這種訊號傳遞方式。按我理解有兩個點 1 訊號需要在高頻傳輸。2 iq訊號可以節約一半的通道資源。第一 是因為頻率越高,可利用的頻寬會越寬,通道容量會更大。第二 因為我們知道天線的尺寸與波長是有關係的,一般是1 4 所以高頻更利於我們...

不同模組命名相同導致的程式崩潰問題

最近幫同事除錯程式發現的乙個問題 底層所用的so裡包含了乙個類的呼叫,名稱叫config,用於讀取config檔案進行程式配置,而他的呼叫此so的測試程式裡也宣告了乙個全域性的這個類的物件,可是這個類的實現卻與so的底層不相同,在執行過程中,他的外層函式的config可以正確執行,但是進入該so庫函...