Können Sie Qt Creator so konfigurieren, dass die laufende Anwendung vor dem Erstellen oder Ausführen beendet wird?

8

Ich entwickle eine QApplication und merke, dass ich oft vergesse, meine Anwendung zu schließen, bevor ich sie neu erstellen und erneut ausführen kann. Dies wird zu einem Problem, wenn ich versehentlich eine Instanz meiner vor 10 Minuten erstellten Anwendung ansehe und erwarte, dass Codeänderungen vor 30 Sekunden angezeigt werden.

Es ist auch ärgerlich, weil ich meine Hand ganz auf die Maus bewegen, die Maus zur laufenden Anwendung bewegen und jedes Mal schließen muss, wenn ich sie neu aufbauen will, und ich bin faul und das will ich nicht machen.

Ist es möglich, Qt Creator so zu konfigurieren, dass es meine QApplication schließt, wenn ich mit dem Erstellen oder Ausführen von QApplication anfange?

    
Cory Klein 19.02.2013, 17:49
quelle

5 Antworten

12

Es gibt eine Möglichkeit, dies in Qt Creator zu tun:

  1. Öffnen Sie die Einstellungen = & gt; Bauen & amp; Ausführen = & gt; Allgemein
  2. Ändern Sie "Anwendung vor dem Erstellen beenden" von "Keine" auf "Gleiches Projekt"
bpierre 02.06.2016, 10:51
quelle
6

Wer auch immer später hier stolpern könnte, ein einfacherer Weg, um einen "killall" -Befehl zu setzen (wie von tangbongbong vorgeschlagen), ist der erste Build-Schritt unter Projekte (Strg + 5) - & gt; Erstellen und Ausführen

Im folgenden Screenshot war mein ausführbarer Name "Tutano" und ich habe die Option -9 hinzugefügt, um sicherzustellen, dass sie getötet wird.

Screenshot  - Entschuldigung, ich bin neu hier und kann kein Bild direkt posten

    
blackxiii 07.05.2014 14:03
quelle
3

Fügen Sie den folgenden benutzerdefinierten Prozessschritt oben in den Build Steps

hinzu

    
Julien Chevet 17.07.2014 10:18
quelle
1

Ja.

Eine Möglichkeit besteht darin, ein sehr einfaches Skript zu erstellen, das Ihren bestehenden laufenden Prozess beendet und einen neuen startet. Wenn Ihre Programmdatei FooBarProgram lautet, gehen Sie zu dem Build-Verzeichnis, das Qt erstellt hat, und erstellen Sie diese Datei FooBarProgramLauncher

%Vor%

Ändern Sie nun die Qt-Projektkonfiguration so, dass Ihr Launcher ausgeführt wird, statt Ihr Programm direkt auszuführen:

  1. Öffnen Sie das Projekt in Qt Creator
  2. Wählen Sie "Projekte" aus dem Bereich links
  3. Wählen Sie die Registerkarte "Build & amp; Run", falls nicht bereits ausgewählt
  4. Wählen Sie den Unterreiter "Ausführen"
  5. Klicken Sie unter der Überschrift "Ausführen" auf die Schaltfläche "Hinzufügen" und wählen Sie "Benutzerdefinierte ausführbare Datei"
  6. Klicken Sie in der Zeile "Befehl" auf die Schaltfläche "Durchsuchen" und wählen Sie FooBarProgramLauncher

Wenn Sie nun Qt mitteilen, dass Ihr Programm ausgeführt werden soll, wird stattdessen FooBarProgramLauncher ausgeführt, was wiederum alle laufenden Instanzen von FooBarProgram beendet und dann die neu kompilierte ausführbare Datei ausführt.

    
tangbongbong 28.02.2013 05:10
quelle
1

Ich bin auf Windows, so dass killall nicht funktioniert. Aber ich habe das herausgefunden (gebe die Werte in der gleichen Form ein, die Julien als Screenshot gepostet hat):

Befehl: taskkill

Argumente: /FI "STATUS eq Running" /IM APPNAME.exe /F

Sie müssen APPNAME natürlich durch den Namen Ihrer Anwendung ersetzen. Der /FI "STATUS eq Running" ist ein Filter, der qmake nach diesem Pre-Build-Schritt fortfährt, selbst wenn die Anwendung noch nicht läuft (andernfalls würde der Prozess nicht zum Beenden und Beenden gefunden). Ohne /F wird die Anwendung nicht geschlossen, zumindest für mich.

Wenn Ihre Anwendung jedoch über ein Symbol im Traybereich verfügt, wird das Symbol nicht ausgeblendet. Das Symbol wird entfernt, wenn Sie die Maus darüber bewegen.

    
user2366975 24.12.2015 14:14
quelle

Tags und Links