Qt – QProcess – mehrfachen Start eines Programms verhindern

In der Qt-Programmierung gibt es die Klasse QProcess zum starten externer Programme. Das Problem: es wird nicht kontrolliert, ob das externe Programm mehrfach gestartet wird oder nicht.

Der folgende Beispiel-Code prüft, ob das QProcess-Objekt gestartet ist und verhindert den mehrfachen Start:

//avoid multiple starts of external Process (example: special characters map)
QProcess p;
 bool p_started = false;

void Dialog::on_Button_clicked(){
 if(p.state() == QProcess::NotRunning) p_started = false;
 if(p_started == true) return;

#if defined(Q_OS_LINUX)
 p.start("kcharselect");
 #endif
 #if defined(Q_OS_WIN)
 p.start("charmap.exe");
 #endif

p_started = true;
 }

Beitrag veröffentlicht

in

von

Schlagwörter: