QComboBox 作为 QT 中的函数输入参数

QComboBox as function input argument in QT

我在玩QT,发现一个小问题。 (我真的是 Qt 的新手)。 搜索之后,我没有找到任何东西。 问题是: 在头文件中:

#include <QMainWindow>
    namespace Ui {
class jAudio;
}

class jAudio : public QMainWindow
{
    Q_OBJECT

public:
    explicit jAudio(QWidget *parent = 0);

    ~jAudio();

private:
    Ui::jAudio *ui;

private slots:
    void jSetup (void);
    void jInfo (QString);
    void jFillComboBox(QComboBox, QStringList);
    void on_bRecord_clicked();
};

然后我在 .cpp 文件中声明方法如下:

#include "jaudio.h" 
#include "ui_jaudio.h"
void jAudio::jFillComboBox(QComboBox comboBox, QStringList data){
    for (int i = 0;  i< options.count(); i++){
        comboBox->addItem(data[i],i);
    }
}

当我尝试 运行 代码时出现错误:

..../jAudio/jaudio.h:25: error: 
‘QComboBox’ has not been declared
 void jFillComboBox(QComboBox, QStringList);

你知道我做错了什么吗?

非常感谢你!!

在 jAudio.h 中:添加 #include <QComboBox>#include <QStringList>。并将 jFillComboBox 更改为 jFillComboBox(QComboBox*, QStringList),如前文评论所述。第二部分的原因是QComboBox是从QWidget派生出来的,QWidget对象不能复制。如果您来自其他高级语言,那么不可复制对象和按指针传递(或引用)的概念对您来说可能很陌生。如果是这种情况,请考虑查看 this question 和那里的链接。