c++ - QList 作为函数参数 - 链接错误 - LNK2019

标签 c++ qt lnk2019 qlist

我对作为函数参数的 QList 有疑问,如果你能帮助我,我将很高兴。

例如我有这段代码:

void SpinBoxList_Enable(QList<QWidget *> *spinBoxList)
{
    foreach(QWidget* mWidget,*spinBoxList)
        mWidget->setEnabled(false);
}

在实现文件中我使用了QList<QWidget *>作为指针的变量:

SpinBoxList_Enable(&controlBoardSpinBoxList);

( controlBoardSpinBoxListQList<QWidget *> 的变量)。

函数 ToggleBoards_Slot(bool)是一个使用的插槽。编译时,我收到此错误消息:

1>cmosaixserialnumber.obj : error LNK2019: unresolved external symbol "private: void __cdecl CMosaixSerialNumber::SpinBoxList_Disable(class QList<class QWidget *> *)" (?SpinBoxList_Disable@CMosaixSerialNumber@@AEAAXPEAV?$QList@PEAVQWidget@@@@@Z) referenced in function "public: void __cdecl CMosaixSerialNumber::ToggleBoards_Slot(bool)" (?ToggleBoards_Slot@CMosaixSerialNumber@@QEAAX_N@Z)
1>cmosaixserialnumber.obj : error LNK2019: unresolved external symbol "private: void __cdecl CMosaixSerialNumber::SpinBoxList_Enable(class QList<class QWidget *> *)" (?SpinBoxList_Enable@CMosaixSerialNumber@@AEAAXPEAV?$QList@PEAVQWidget@@@@@Z) referenced in function "private: void __cdecl CMosaixSerialNumber::on_ControlBoardCheckBox_StateChanged(int)" (?on_ControlBoardCheckBox_StateChanged@CMosaixSerialNumber@@AEAAXH@Z)

我该如何解决这个问题?

最佳答案

您使用指针调用函数,但函数参数不是指针。我建议您将参数更改为引用(以避免复制):

void SpinBoxList_Enable(QList& spinBoxList) { ... }

然后不使用地址运算符调用它:

SpinBoxList_Enable(controlBoardSpinBoxList);

关于c++ - QList 作为函数参数 - 链接错误 - LNK2019,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17389319/

相关文章:

c++ - Visual Studio 调用堆栈窗口不显示文件名

c++ - 哪个 "standard"是 C++11 标准?

c++ - "Cleared"宏是否导出为.lib文件?

c++ - LNK2019 使用非模板类

c++ - GCC 中树莓派的交叉编译。从哪儿开始?

c++ - 如何从Winapi中的“编辑”表单获取文本?

c++ - 打开文件时基于 Qt 的应用程序 'Qt platform plugin windows not found' 问题

c++ - 将带有空格的十六进制字符串拆分为Qt中的bytearray

c++ - 错误 : ldd outputLine: "libicui18n.so.56 => not found"

c++ - 决策搜索树中的 LINK 错误 2019 和 1120