Zugriff auf Methoden anderer Klassen

Alles rund um die Programmierung mit Qt
Antworten
MHage
Beiträge: 6
Registriert: 4. Oktober 2022 20:54

Zugriff auf Methoden anderer Klassen

Beitrag von MHage »

Hallo,

ich habe mal wieder Defizite bei den Basics...
In meinem aktuellen Projekt möchte ich Audio Dateien aufnehmen. In dem offiziellen example "Audiorecorder" habe ich schon ziemlich viel von dem gefunden, was ich brauche. Also erstmal pauschal in mein Projekt integriert. Läuft im Prinzip auch so wie es soll.
Nun sollen aber Teile der audiorecorder.ui auf die mainwindow.ui umziehen.

Aber irgendwie blicke ich das nicht mit den Signalen/Slots.

Hier ist die original Klasse vom audiorecorder
QT_BEGIN_NAMESPACE
namespace Ui { class AudioRecorder; }
class QAudioRecorder;
class QAudioProbe;
class QAudioBuffer;
QT_END_NAMESPACE

class AudioLevel;

class AudioRecorder : public QMainWindow
{
Q_OBJECT

public:
AudioRecorder();

public slots:
void processBuffer(const QAudioBuffer&);

private slots:
void setOutputLocation();
void togglePause();
void toggleRecord();

void updateStatus(QMediaRecorder::Status);
void onStateChanged(QMediaRecorder::State);
void updateProgress(qint64 pos);
void displayErrorMessage();

private:
void clearAudioLevels();

Ui::AudioRecorder *ui = nullptr;

QAudioRecorder *m_audioRecorder = nullptr;
QAudioProbe *m_probe = nullptr;
QList<AudioLevel*> m_audioLevels;
bool m_outputLocationSet = false;

};
die audiorecorder.cpp habe ich ebenfalls noch unangetastet gelassen.

In der mainwindow.cpp habe ich nun folgendes versucht:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)

{
ui->setupUi(this);

connect(ui->constantQualityRadioButton, &QRadioButton::toggled, this, &MainWindow::setEnabled);
connect(ui->constantBitrateRadioButton, &QRadioButton::toggled, this, &MainWindow::setEnabled);
AudioRecorder *audioRecorder = new AudioRecorder;
connect(ui->outputButton, &QPushButton::clicked, this, &audioRecorder->setOutputLocation());
connect(ui->recordButton, &QPushButton::clicked, this, &audioRecorder->toggleRecord());
connect(ui->pauseButton, &QPushButton::clicked, this, &audioRecorder->togglePause());


}
Funktioniert natürlich nicht wirklich. Nachdem ich jetzt über zwei Tage hinweg immer wieder mal daran gesessen habe,
hoffe ich, Ihr könnt mir zeigen wie es richtig geht.


VG
Matze
Antworten