Unsolved Einmal Random generieren
-
@Christian-Ehrlicher
Ich verstehe nicht genau was du meinst? Ich habe doch QSettings::setValue drinne -
@Benkho said in Einmal Random generieren:
begrüßungsettings.ini
ich währe vorsichtig mit Umlauten im Dateipfad. Existiert die Datei überhaupt ? Es sollte auf jedenfalls eine *.ini Datei existieren, auch wenn sie leer ist.
-
@Benkho said in Einmal Random generieren:
Ich habe doch QSettings::setValue drinne
Korrekt, habe load und save verwechselt bzw. verscrollt :)
Sicher dass Du dort auch Schreibrechte hast? -
@J.Hilk
das ü habe ich schon in ue geändert. Ja diese .ini datei exestiert. Ich habe auch mal mit einer .txt datei versucht aber damit will es auch nicht so ganz klappen. -
@Benkho
hier hast du ein funktionierende Beispiel:#include <QApplication> #include <QString> #include <QPushButton> #include <QLineEdit> #include <QHBoxLayout> #include <QSettings> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget* w= new QWidget(); QHBoxLayout *layout = new QHBoxLayout(w); QLineEdit *le = new QLineEdit(); layout->addWidget(le); QPushButton * btn = new QPushButton("Save"); layout->addWidget(btn); QObject::connect(btn, &QPushButton::clicked, [le]()->void{ QSettings settings("MySettings",QSettings::NativeFormat); settings.setValue("text", le->text()); }); btn = new QPushButton("Load"); QObject::connect(btn, &QPushButton::clicked, [le]()->void{ QSettings settings("MySettings",QSettings::NativeFormat); le->setText(settings.value("text").toString()); }); layout->addWidget(btn); w->show(); return a.exec(); }
Mit Save speicherst du den Text der gerade in dem LineEdit steht und mit Load wird der gespeicherte Text geladen und über das LineEdit angezeigt.
-
Ok, ich habe mal versucht alles andere bei mir raus zu machen und dein Script zu verwenden aber irgendwie will es bei mir nicht funktionieren.
Dann habe ich versucht das Script zu verstehen und auf meinem an zu wenden oder eher zu gucken wo bei mir der fehler liegt aber auch das ist mir nicht gelungen, also alle versuche sind kläglich gescheitert.Das kann doch nicht so schwer sein oder?
Ich guck mir das morgen nochmal genau an. -
@J.Hilk
Hallo,ich habe heute mal ein neues Projekt in QT aufgemacht um dein Script aus zu probieren. Auch hier speichert er nichts ab wenn ich auf Save klicke oder benötige ich dafür noch eine Datei? ich weis nur nicht wie die Heißen soll, da ich keinen Datei Pfad finden konnte.
Mit freundlichem Gruß
Julian
-
@Benkho
mmh,
mein Beispiel funktioniert auf jeden Fall. Bist du unter Windows unterwegs? WeilSettings::NativeFormat
ist unter windows nen Eintrag in der Regestry. Da wird dann keine Datei angelegt.Hier ist das Beispiel abgeändert, so dass es immer eine ini-Datei angelegt wird. Und außerdem wird nach Programmstart direkt der DateiPfad in das LineEdit geschrieben, damit du es direkt finden kannst.
#include <QApplication> #include <QString> #include <QPushButton> #include <QLineEdit> #include <QHBoxLayout> #include <QSettings> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget* w= new QWidget(); QHBoxLayout *layout = new QHBoxLayout(w); QLineEdit *le = new QLineEdit(); layout->addWidget(le); QPushButton * btn = new QPushButton("Save"); layout->addWidget(btn); QObject::connect(btn, &QPushButton::clicked, [le]()->void{ QSettings settings("MySettings.ini",QSettings::IniFormat); settings.setValue("text", le->text()); }); btn = new QPushButton("Load"); QObject::connect(btn, &QPushButton::clicked, [le]()->void{ QSettings settings("MySettings.ini",QSettings::IniFormat); le->setText(settings.value("text").toString()); }); layout->addWidget(btn); QSettings settings("MySettings.ini",QSettings::IniFormat); le->setText(settings.fileName()); w->show(); return a.exec(); }
Edit:Die Endung "ini" an den Dateinamen angehängt.
-
@J.Hilk
Hallo,das war der fehler, ich benutze Windows. Ich habe dein Script in mein Test Project eingefügt und zack es hat geklappt. Danach habe ich mir den unsprünglichen Code angesehen und da stand auch NativeFormat. Diesen habe ich dann in IniFormat geändert und auch das hat jetzt super geklappt. Ich werde den Code jetzt nochmal stück für stück zerlegen um nachvollziehen zu können, was die einzelnen Begriffe so machen.
Vielen Dank für deine super Hilfe.
Jetzt habe ich nur noch eine Frage die mir in laufe der Zeit in dem Kopf gekommen ist.
Gibt es eine möglichkeit A-Z zu haben und diesen Buchstaben dann Random Symbole zu zuordnen? und geht das dann auch wenn ich in einem Textfeld z.B. Heidelbeeren eingebe dieses in der Random generierten Symbolschrift erscheint?P.S. Frag bitte nicht wieso man sowas machen sollte, aber zum üben denke ich wird das relativ interessant werden.
-
@Benkho said in Einmal Random generieren:
Vielen Dank für deine super Hilfe.
aber gerne doch.
Jetzt habe ich nur noch eine Frage die mir in laufe der Zeit in dem Kopf gekommen ist.
Gibt es eine möglichkeit A-Z zu haben und diesen Buchstaben dann Random Symbole zu zuordnen? und geht das dann auch wenn ich in einem Textfeld z.B. Heidelbeeren eingebe dieses in der Random generierten Symbolschrift erscheint?Ich nehme an hier beziehst du dich auf Character/String-Zeichen ? und du will normale `a-Z`` - Zeichen mit anderen ersetzen?
Solange die Ziel-Zeichen Teil des uni-codec sind und die Schriftart die du Verwendest diese Zeichen darstellen kann. Kannst du das relative leicht machen mit Hilfe einer
Regular Expression
.QChar durch Icon oder QPixmap ersetzen wiederum, wird schwer aber nicht unmöglich. In dem Fall müsstest du ein custom-QWidget erstellen, und das QPaintEvent überarbeiten, dann kannst du den string Zeichen für Zeichen abtasten und via QPainter::drawImage die einzelnen Bilder hintereinander zeichnen.