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 объекты не могут быть скопированы. Если вы пришли из других языков более высокого уровня, концепция не копируемых объектов и передача по указателю (или ссылка) могут быть вам чужды. Если это так, рассмотрите этот вопрос и ссылки там.

Другие вопросы по тегам