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?
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
Fügen Sie den folgenden benutzerdefinierten Prozessschritt oben in den Build Steps
hinzu
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
Ändern Sie nun die Qt-Projektkonfiguration so, dass Ihr Launcher ausgeführt wird, statt Ihr Programm direkt auszuführen:
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.
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.
Tags und Links qt-creator