Zugriff auf Methoden anderer Klassen
Verfasst: 15. Oktober 2022 13:04
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
In der mainwindow.cpp habe ich nun folgendes versucht:
hoffe ich, Ihr könnt mir zeigen wie es richtig geht.
VG
Matze
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
die audiorecorder.cpp habe ich ebenfalls noch unangetastet gelassen.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;
};
In der mainwindow.cpp habe ich nun folgendes versucht:
Funktioniert natürlich nicht wirklich. Nachdem ich jetzt über zwei Tage hinweg immer wieder mal daran gesessen habe,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());
}
hoffe ich, Ihr könnt mir zeigen wie es richtig geht.
VG
Matze