Hallo zusammen,
habe da eine Frage bezüglich externen Prozessen in Qt.
In meiner GUI habe ich 2 textEdit Widgets, in denen unterschiedlicher Text steht, jetzt möchte ich beim drücken einer bestimmten Taste, gvim als externen Prozess starten,
die Texte in zweispaltiger Darstellung öffnen (einen links, einen rechts) und den Textcursor an die Position setzen, an der er in dem TextEdit Widget zuvor war.
Das gvim beim drücken der Taste startet, funktioniert schon mal, nur wie kann ich die Texte darstellen und den Cursor setzen? Ist das überhaupt möglich?
QProcess mit gvim
Re: QProcess mit gvim
Guck Dir mal die Kommandozeilenparameter für (g)vim an: http://linuxcommand.org/man_pages/gvim1.html
Für Dich interessant scheinen die folgenden zu sein:
[filelist] Eine Liste der zu öffnenden Dateien
+[num] Platziert den Cursor in der mit num angegebenen Zeile in der ersten Datei
-O[N] Öffnet die Dateien in mehreren Fenstern nebeneinander
So oder so wirst Du wohl den Inhalt der QTextEdits zuerst in (temporäre) Dateien schreiben müssen.
Für Dich interessant scheinen die folgenden zu sein:
[filelist] Eine Liste der zu öffnenden Dateien
+[num] Platziert den Cursor in der mit num angegebenen Zeile in der ersten Datei
-O[N] Öffnet die Dateien in mehreren Fenstern nebeneinander
So oder so wirst Du wohl den Inhalt der QTextEdits zuerst in (temporäre) Dateien schreiben müssen.
Re: QProcess mit gvim
Das ist wohl genau das was ich brauche, werde es gleich mal ausprobieren.
Vielen Dank schonmal.
Vielen Dank schonmal.
Re: QProcess mit gvim
Den Text auszulesen und die Fenster nebeneinander zu öffnen funktioniert.
Nur der Cursor macht noch Probleme.
Also ich habe eine QStringList in der alle Parameter stehen, die gvim benötigt, die sieht so aus: parameters<<"-O"<<"+10"<<"temp.txt"<<"+5"<<"temp2.txt";
Dachte dass so der Cursor in Zeile 10 der ersten Datei und in Zeile 5 in der zweiten Datei platziert wird, aber scheinbar wird das erste Kommando überschrieben und der Cursor steht in der ersten Datei in Zeile 5. Gibts eine Möglichkeit den Fokus auf die zweite Datei zu setzen, nachdem der Cursor in der ersten gesetzt ist, damit der zweite Parameter nicht auch auf die erste Datei angewendet wird?
Nur der Cursor macht noch Probleme.
Also ich habe eine QStringList in der alle Parameter stehen, die gvim benötigt, die sieht so aus: parameters<<"-O"<<"+10"<<"temp.txt"<<"+5"<<"temp2.txt";
Dachte dass so der Cursor in Zeile 10 der ersten Datei und in Zeile 5 in der zweiten Datei platziert wird, aber scheinbar wird das erste Kommando überschrieben und der Cursor steht in der ersten Datei in Zeile 5. Gibts eine Möglichkeit den Fokus auf die zweite Datei zu setzen, nachdem der Cursor in der ersten gesetzt ist, damit der zweite Parameter nicht auch auf die erste Datei angewendet wird?
Re: QProcess mit gvim
Da in der Doku zu den Kommandozeilenparametern von vim explizit nur der ersten Datei die Rede ist, würde ich mal vermuten, dass es nicht möglich ist:
Da das ganze reichlich wenig mit Qt zu tun hat, würde ich Dir auch eher raten, mal die vim-community zu fragen: http://www.vim.org/community.phpFor the first file the cursor will be positioned on line "num".