Programm reagiert nach Button_click nicht

Alles rund um die Programmierung mit Qt
Antworten
wapro
Beiträge: 9
Registriert: 29. April 2017 15:05

Programm reagiert nach Button_click nicht

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Programm reagiert nach Button_click nicht

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Re: Programm reagiert nach Button_click nicht

Beitrag 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
Antworten