Resource icon

Veraltetes toAscii() in QT ersetzen durch toLatin();

Programmiersprache(n)
c++ QT
Betriebssystem(e)
Linux
Hallo Leute!
Wie oft kommt es vor, das man zuerst ein Programm in c++ schreibt und später auf Qt portiert und erst nach und nach die Methoden ersetzt?

Gerade gcc und Qt sind in dieser Hinsicht sehr dynamisch und man muss sehr aufpassen, um seinen Programmcode auf dem laufenden zu halten.

Bei dem in diesem Forum vorgestellten Programm Talarius ist dies der Fall.
Code:
char *finam = keyfilename.toAscii().data();  // kopiert einen QString in einen ASCII-String
Kompiliert man zum Beispiel das Programm Talarius mit den neueren Versionen, so wird man eine Fehlermeldung erhalten.

Man kann das obere Beispiel durch
Code:
QByteArray finam = keyfilename.toLatin1();
ersetzen.

Im Programmcode sieht das dann zum Beipiel so aus:

Code:
/** Stellt die Länge der Schlüsseldatei fest*/
long Talarius::getdatlen(void)
{
  long dateilaenge;
  //QMessageBox *msgBox = new QMessageBox(this);
  //Grundinformationen einlesen

  std::fstream dat_ein;  // std::fstream

  /* Initialisiert die Dateilänge, einser, und Nuller mit Null, um richtig zäehlen zu können*/
  dateilaenge = 0;

  ///char *finam = keyfilename.toAscii().data();  // kopiert einen QString in einen ASCII-String
  QByteArray finam = keyfilename.toLatin1();
  dat_ein.open(finam, std::fstream::in | std::fstream::binary);

  if (!dat_ein )
  {
  msgBox->setText("Datei konnte nicht geoeffnet werden!");
  msgBox->show();
  infoEdit->append("Datei konnte nicht geoeffnet werden!");
  }

  dat_ein.seekg(0, std::fstream::end);
  dateilaenge = dat_ein.tellg();


  dat_ein.close();

return dateilaenge;
}
Übrigens dienen Zeilen wie

Code:
infoEdit->append("Datei konnte nicht geoeffnet werden!");
dafür, damit nicht ständig eine MessageBox mit Meldungen nervt.
Ab und zu sinnvoll, aber man kann ja Meldungen auch in dem

Input-Widget

TextEdit

sichtbar machen. Auf diese Weise hat man die Meldungen, Warnungen, Fehler gleich aufgelistet.

Der Grund warum ich die Programme hier nicht alle schon ersetzt habe ist, das ich das Programmieren als Steckenpferd betreibe. Hauptberuflich bin ich Hausmeistergehilfe, momentan bin ich von Früh bis spät mit schwerer körperlicher Arbeit belastet(acht Stunden Rasenmähen, kilometerweit bei Häuserblocks nach dem Rechten sehen) und habe momentan abends keine Kraft mehr, was zu tun. Mehr wenn ich wieder Urlaub habe.

Daher dieser kleine Hinweis

Sorry Guys, hoffe etwas geholfen zu haben!
Autor
rustyoldguy
First release
Last update
Bewertung
0,00 Stern(e) 0 Bewertungen

More resources from rustyoldguy

Oben