QListWidget 並**沒有**名為 itemClicked(QListWidgetItem*) 的信號。
正確信號簽名為:
void itemClicked(QListWidgetItem *item) —— **單擊項目**(Qt 5/6 均存在)void itemPressed(QListWidgetItem *item) —— 按下項目void itemActivated(QListWidgetItem *item) —— 雙擊/激活項目void itemEntered(QListWidgetItem *item) —— 滑入項目報錯常見於:**手寫信號簽名拼寫錯誤**、**連接時參數類型不匹配**、**訪問權限導致 MOC 未識別**。
itemClicked(QListWidgetItem*),勿手輸。// Qt5 新式連接(編譯期檢查,推薦)
connect(ui->listWidget, &QListWidget::itemClicked, this, &MyClass::onItemClicked);
// 舊式字符串連接(運行期解析,易拼錯)
connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onItemClicked(QListWidgetItem*)));
void onItemClicked(QListWidgetItem *item),參數類型、const 屬性、引用/指針必須完全一致。QObject 並含 Q_OBJECT 宏。public slots: / private slots: / protected slots: 區塊,或用 Q_SLOT 標記(Qt5+)。qmake → make / nmake / mingw32-make 重新生成 MOC 代碼。public/private/protected 限制,但槽函數必須可被 MOC 見到(即聲明在類定義內)。moc_*.cpp 是否包含該槽的元對象信息。QObject::connect 返回 false 並在控制台輸出 QObject::connect: No such signal...,直接定位拼寫差異。核心原則:**信號簽名必須與類定義完全一致**,新式連接語法可在編譯期攔截 99% 此類錯誤,強烈建議全面遷移至新式連接。