QComboBox как входной аргумент функции в 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);
Вы знаете, что я делаю не так?
Спасибо тебе большое!!
1 ответ
В jAudio.h: добавить #include <QComboBox>
а также #include <QStringList>
, И изменить jFillComboBox
в jFillComboBox(QComboBox*, QStringList)
, как уже упоминалось ранее в комментариях. Основанием для второй части является то, что QComboBox
происходит от QWidget
, а также QWidget
объекты не могут быть скопированы. Если вы пришли из других языков более высокого уровня, концепция не копируемых объектов и передача по указателю (или ссылка) могут быть вам чужды. Если это так, рассмотрите этот вопрос и ссылки там.