Portál AbcLinuxu, 24. dubna 2024 23:31
Dobrý den přeji.
Využívám třídu QTextStream pro zapisování dat do textového souboru, když jsem potřeboval prázdný řádek, vložil jsem jednoduše "\n", jenže takový konec řádku se zrovna moc nelíbí Windows, které by raději "\r\n".
Řeší tohle nějak samotné Qt ? Já jsem o tom nic nenašel.
Takže si asi budu muset napsat funkci, která vrátí správný konec řádku. Nebo má někdo tip na šikovný fígl ? Programuji v Pythonu, systém pod kterým aplikace běží si můžu bez problému zjistit přes modul "platform" metodou "system()", to je jediné řešení, které mě napadlo.
Řešení dotazu:
QTextStream str;
str << endl;
Díky.
Akorát, v Pythonu si s tímhle neškrtnu, fakt už je asi čas začít s C++. Dopsal jsem si tu funkci sám a je to.
Taky jsem se divil. Uvádí ale asi neimplementuje. Možná ho jen neumím použít. Ale nevidím ho tu ..
In [3]: foo = QtCore.QTextStream() In [4]: dir(foo) Out[4]: ['AlignAccountingStyle', 'AlignCenter', 'AlignLeft', 'AlignRight', 'FieldAlignment', 'FixedNotation', 'ForcePoint', 'ForceSign', 'NumberFlag', 'NumberFlags', 'Ok', 'ReadCorruptData', 'ReadPastEnd', 'RealNumberNotation', 'ScientificNotation', 'ShowBase', 'SmartNotation', 'Status', 'UppercaseBase', 'UppercaseDigits', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__lshift__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rlshift__', '__rrshift__', '__rshift__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'atEnd', 'autoDetectUnicode', 'codec', 'device', 'fieldAlignment', 'fieldWidth', 'flush', 'generateByteOrderMark', 'integerBase', 'locale', 'numberFlags', 'padChar', 'pos', 'read', 'readAll', 'readLine', 'realNumberNotation', 'realNumberPrecision', 'reset', 'resetStatus', 'seek', 'setAutoDetectUnicode', 'setCodec', 'setDevice', 'setFieldAlignment', 'setFieldWidth', 'setGenerateByteOrderMark', 'setIntegerBase', 'setLocale', 'setNumberFlags', 'setPadChar', 'setRealNumberNotation', 'setRealNumberPrecision', 'setStatus', 'setString', 'skipWhiteSpace', 'status', 'string']
Ja teda nevim, proc furt resite std::endl
, protoze i v prvnim odkazu, ktery jste sem dal, mate napsano, ze se na Windows automaticky preklada kazdy \n
na \r\n
pokud stream otevrete s flagem QIODevice::Text
.
Určitě už někdo popsal "dukumentační slepotu" :) Čučím do dokumentace, jasně to tam píšou, ale nevidím to. Díky za nakopnutí, funguje to tak, jak má,
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.