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

时间:2017-11-05 21:14:16

标签: c++ qt function arguments qcombobox

我正在玩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);

你知道我做错了什么吗?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

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