Seite 1 von 1

Programm reagiert nach Button_click nicht

Verfasst: 25. Mai 2018 20:21
von wapro
Hallo zusammen,

ich mache gerade einen Test um die Funktion in mein Projekt einzubinden und hab ein Problem:

Sobald ich den Button (pushButtonPlay) angeklickt habe reagiert das Programm erst wieder sobald die Aktion des Buttonklicks beendet ist. Kann mir jemand sagen wieso?

Mein Code folgendermaßen aus:

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <stdlib.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButtonPlay_clicked()
{
    system("omxplayer -o alsa /home/pi/Desktop/alleleut.mp3");
}

void MainWindow::on_pushButtonStop_clicked()
{
    //system("omxplayer -p");
}
Danke schon mal.

Re: Programm reagiert nach Button_click nicht

Verfasst: 26. Mai 2018 07:35
von Christian81
Weil der Aufruf system() dies eben so macht:
http://man7.org/linux/man-pages/man3/system.3.html

Code: Alles auswählen

system() returns after the command has been completed.
Benutze QProcess: http://doc.qt.io/qt-5/qprocess.html

Re: Programm reagiert nach Button_click nicht

Verfasst: 7. Juni 2018 14:53
von hilefoks
Genau das ist der Grund weshalb ein slot sehr wenig Arbeit verrichten sollte.

In deinem Fall helfen dir die asynchronen Methoden von QProcess, z.B. QProcess::startDetached sicher weiter.

MfG
Hilefoks