我正在玩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);
你知道我做错了什么吗?
非常感谢!!
答案 0 :(得分:0)
在jAudio.h中:添加#include <QComboBox>
和#include <QStringList>
。如前面在评论中所述,将jFillComboBox
更改为jFillComboBox(QComboBox*, QStringList)
。第二部分的原因是QComboBox
派生自QWidget
,并且QWidget
个对象无法复制。如果您来自其他更高级别的语言,则不可复制对象和传递指针(或引用)的概念对您来说可能是陌生的。如果是这种情况,请考虑查看this question及其中的链接。