QSpinBox的兩個同名訊號使用時報錯的處理

2022-09-07 06:36:10 字數 594 閱讀 5731

qspinbox有兩個同名的訊號

void valuechanged(int i)

void valuechanged(const qstring &text)

當這樣使用時

qobject::connect(&spinbox, signal(valuechanged(int)), ...)

qobject::connect(&spinbox, signal(valuechanged(qstring)), ...)

沒有問題。

當使用c++11以上的語法時:

qobject::connect(&spinbox, &qspinbox::valuechanged, ...)

編譯器會報錯:

error: no matching function for call to qobject::connect(qspinbox*&, , ...)

使用函式名無法區分兩個訊號。

這時可以使用

auto qoverload(t functionpointer)

改寫為connect(spinbox, qoverload(&qspinbox::valuechanged), ...)

C 中兩個同名頭檔案的引用順序

明人不說暗話,直接上 這裡有兩個路徑下的同名head.h標頭檔案。includea head.h define a 100 int funa includeb head.h define a 200 int funa main.cpp include include head.h using nam...

如何求兩個訊號的相位差

1.在訊號處理裡經常會碰到,用於相位差的非引數估計,我接觸到的典型的用處就是在isar成像中用於平動相位估計。假設兩個頻率相同具有相位差的訊號 其時間互相關函式為 相位差 test programme for phase error estimation clc clear signal f0 20...

Qt兩個類通過訊號槽通訊

qt需要通過訊號槽來通訊,connect的時候總是返回false,請教了公司的乙個小哥,才解決了問題,雖然是個很白痴的問題。bool b qobject connect m pcollectob,signal qcollectobject getdata void this,slot senddat...