PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm nur einmal starten (Qt)



Kirsche
02-12-2005, 15:50
Hallo Leute,

gibt es eine Möglichkeit zu überprüfen, ob mein Programm schon läuft? Dann soll es nämlich nicht noch einmal gestartet werden.

Und noch eine Frage zu QWhatsThis: Wie kann ich verhindern, dass ein Zeilenumbruch nach einem Anführungszeichen stattfindet? Ich schreibe z.B. "...\'" + fileName + "\'". Der Umbruch erfolgt immer nach ' . Das sieht ziemlich dämlich aus.

Schöne Grüße,
Kirstin

anda_skoa
02-12-2005, 21:25
Zum ersten Problem gibt es keine Qt Lösung (wenn man von einer kommerziellen Komponente in den Qt Solutions absieht)

Allerdings geht das ziemlich sicher über die Win API

Ansich muß man die einfachen Hochkomma nicht mit \ escapen, vielleicht liegt es daran.

Übrigens ist das direkten Zusammenfügen bei einem benutzersichtbaren Output nicht so "sauber".

Man sollte sich das in Hinblick auf etwaige spätere Projekte mit Übersetzungen in andere Sprachen angewöhnen, QString::arg zu verwenden, also zB

QString message = QString("File %1 has been deleted").arg(filename);

(Im Falle von Übersetzbarkei müßte man das naürlich noch in tr() packen)

Ciao,
_

Kirsche
03-12-2005, 10:17
Hallo anda_skoa,

im Prinzip hast du Recht. ;) So ging es aber einfacher. Außerdem ist es kürzer. Sinnvoll wäre es allerdings schon, alles darauf umzustellen. Vermutlich würde mein Problem mit dem falschen Zeilenumbruch gelöst werden. Mal sehen...

Schöne Grüße,

BlueJay
03-12-2005, 11:33
im Prinzip hast du Recht. ;) So ging es aber einfacher.


... dachte ich auch mal, bis mein SysAdmin in der Türe stand und von 6 (in Worten: sechs) Programmen eine "internationale" Version wollte.
Das war meine Erziehung zum Separieren der Texte vom Rest des Programms ;)
Zum Glück waren damals 2 erst fertig.

so long,
BlueJay

Kirsche
03-12-2005, 17:08
Hallo BlueJay,

im Prinzip hast du ja Recht.:) Das Programm soll allerdings nur auf Englisch sein und nicht übersetzt werden. Die meisten Ausgabestrings habe ich trotzdem schon mit mit tr umrahmt. Nur auf arg hatte ich noch keine Lust, weil ich mir erst einmal angucken muss, wie das genau geht. Wenn ich noch Zeit habe, ändere ich es, aber zunächst muss ich andere wichtige Dinge programmieren, nämlich die, die ich wirklich als Aufgabe habe.

Schöne Grüße,

Kirsche
07-12-2005, 18:46
Hallo Leute,

ich habe noch einmal eine Frage zu den Ausgabestrings:

Wenn ich Pfade ausgebe, benutze ich QDir::convertSeparators, um sie so darzustellen, wie es in dem jeweiligen Betriebssystem üblich ist. Das sieht dann so aus:

QMessageBox::critical ( parent, "File Error", "Could not open the file \'" + QDir::convertSeparators( fileName ) + "\' !", QMessageBox::Ok , 0, 0 );

Wie stelle ich das dann mit tr und arg dar? Wo muss QDir::convertSeparators hin?

Vielen Dank,

anda_skoa
08-12-2005, 14:20
QString message = tr("Could not open the file '%1' !").arg(QDir::convertSeparators( fileName )); Ciao, _