QLineEdit
QLineEdit
Hallo zusammen,
benötige bitte dringend Hilfe!
Und zwar habe ich eine LineEdit und in diese kann ich entweder manuell( händisch ) oder über einen Browse-Button eine .properties Datei einfügen.
Nun will ich, das wenn man in diese LineEdit manuell eine Datei schreibt: zum Einen geprüft wird, ob diese Datei die richtige ist und zum Anderen, dass eine CB enabled wird, welche davor disabled war.
Hinzu noch eine Anforderung: wenn die LineEdit wieder leer ist, also immer wenn sie eben nicht befüllt ist, soll die CB disabled sein, sprich immer eine Art Aktualisierung vorhanden sein.
Ich danke vielmals im Voraus für Eure Mithilfe, Tipps oder dergleichen!
Grüße
Max
benötige bitte dringend Hilfe!
Und zwar habe ich eine LineEdit und in diese kann ich entweder manuell( händisch ) oder über einen Browse-Button eine .properties Datei einfügen.
Nun will ich, das wenn man in diese LineEdit manuell eine Datei schreibt: zum Einen geprüft wird, ob diese Datei die richtige ist und zum Anderen, dass eine CB enabled wird, welche davor disabled war.
Hinzu noch eine Anforderung: wenn die LineEdit wieder leer ist, also immer wenn sie eben nicht befüllt ist, soll die CB disabled sein, sprich immer eine Art Aktualisierung vorhanden sein.
Ich danke vielmals im Voraus für Eure Mithilfe, Tipps oder dergleichen!
Grüße
Max
Re: QLineEdit
Moin,
um die Checkbox zu steuern, könntest du folgendes machen:
Das Signal textChanged bietet sich aber nicht an, um zu testen, ob die Datei exisitiert. Der Benutzer tippt ja gerade noch. Dann vielleicht sowas:
Alles ungetestet. Aber hoffe es hilft dir einen Schritt weiter.
- Hilefoks
um die Checkbox zu steuern, könntest du folgendes machen:
Code: Alles auswählen
connect(myLineEdit, &QLineEdit::textChanged, [&]() {
myCheckBox->setChecked( !myLineEdit.text().isEmpty() );
});
Code: Alles auswählen
connect(myLineEdit, &QLineEdit::editingFinished, [&]() {
QString fileName = myLineEdit.text();
myCheckBox->setChecked( !fileName.isEmpty() && QFile::exists(fileName) );
});
- Hilefoks
Re: QLineEdit
Servus,
sag ich schon einmal vielen Dank und probier das gleich mal aus...
gebe dann hier bescheid, ob es funktioniert hat
sag ich schon einmal vielen Dank und probier das gleich mal aus...
gebe dann hier bescheid, ob es funktioniert hat
Re: QLineEdit
Code: Alles auswählen
co += connect( AudiIRCAnalyzerLineEdit, &QLineEdit::textChanged, [&]( ) {
AudiIRCAnalyzerCB->setEnabled( !AudiIRCAnalyzerLineEdit->text( ).isEmpty( ) ); } );
co += connect( AudiIRCAnalyzerLineEdit &QLineEdit::editingFinished, [&]( ) {
QString fileName = AudiIRCAnalyzerLineEdit->text( );
AudiIRCAnalyzerCB->setEnabled( !fileName.isEmpty( ) && QFile::exists( fileName ) ); } );
der möchte da denke ich doch eine signal/slot verknüpfung.
was nun?
noch wer nen rat für mich?
reicht das aus, um zu erkennen, dass gerade geschrieben wird und somit die cb enabled wird und wenn nichts drinnen steht sie disabled wird?
kein slot oder so nötig?
EDIT: Code in code Tags gesetzt [hilefoks]
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QLineEdit
Und wie lautet die genaue Fehlermeldung? Und was soll das 'co +' davor?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QLineEdit
Das ist sehr seltsam. Von welchem Typ ist co und was willst du damit?
Das was ich in meinen connect verwendet habe, ist die neue Signal-Slot Syntax, wie sie mit Qt5 eingeführt wurde. Darüber hinaus habe ich eine Lambda-Funktion statt eines Slots verwendet. Lambda-Funktionen wurden mit C++11 eingeführt.
Mit Qt ab 5.7 und normalen Compilern sollte es so gehen. Es hält dich aber natürlich auch nichts davon ab, aus meinen Lambda-Funktionen eine Slot zu machen.
Code: Alles auswählen
co += connect(...
Das was ich in meinen connect verwendet habe, ist die neue Signal-Slot Syntax, wie sie mit Qt5 eingeführt wurde. Darüber hinaus habe ich eine Lambda-Funktion statt eines Slots verwendet. Lambda-Funktionen wurden mit C++11 eingeführt.
Mit Qt ab 5.7 und normalen Compilern sollte es so gehen. Es hält dich aber natürlich auch nichts davon ab, aus meinen Lambda-Funktionen eine Slot zu machen.
Re: QLineEdit
co ist vom typ int
somit kann man den output speichern
ich benutze qt 4.8.5
und zudem entsprechend das c++ und eclipse
ja er erkennt das so nicht weil es wie ihr auch erwähnt habt ein lamda ausdruck/funktion ist
ich arbeite jedoch ausschließlich mit signal/slot
von daher bitte ich nochmal um hilfe, dass ich in meiner anfangs gestellten frage weiterkomme
bin eben eher noch anfänger...
zudem habe ich eine datenbank und diese wird in einem .sql file abgespeichert, jetzt soll ich aber aus diesem file auch noch eine .txt datei machen
gibt es da eine einfache und schnelle lösung ohne das .sql file zu löschen sondern zusätzlich noch ein .txt zu erstellen?
vielen dank...
somit kann man den output speichern
ich benutze qt 4.8.5
und zudem entsprechend das c++ und eclipse
ja er erkennt das so nicht weil es wie ihr auch erwähnt habt ein lamda ausdruck/funktion ist
ich arbeite jedoch ausschließlich mit signal/slot
von daher bitte ich nochmal um hilfe, dass ich in meiner anfangs gestellten frage weiterkomme
bin eben eher noch anfänger...
zudem habe ich eine datenbank und diese wird in einem .sql file abgespeichert, jetzt soll ich aber aus diesem file auch noch eine .txt datei machen
gibt es da eine einfache und schnelle lösung ohne das .sql file zu löschen sondern zusätzlich noch ein .txt zu erstellen?
vielen dank...
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QLineEdit
QObject::connect() bringt ein bool zurück, warum du dann einen integer damit addieren musst - keine Ahnung.
Und Du hast immer noch keine Fehlermeldung gepostet...
Und Du hast immer noch keine Fehlermeldung gepostet...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QLineEdit
noch eine andere frage und zwar:
ich möchte in eine lineedit etwas befüllen, wenn diese dann befüllt ist soll eine checkbox enabled werden, aber sobald ich die lineedit leere oder sie nun einmal leer ist, soll die checkbox disabled und unchecked werden...
jemand eine ahnung?
vielen dank und grüße
ich möchte in eine lineedit etwas befüllen, wenn diese dann befüllt ist soll eine checkbox enabled werden, aber sobald ich die lineedit leere oder sie nun einmal leer ist, soll die checkbox disabled und unchecked werden...
jemand eine ahnung?
vielen dank und grüße
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QLineEdit
Schau Dir bitte einfach die Doku zu QLineEdit an - dort gibt es zum einen Funktionen zum Befüllen der QLineEdit und zum anderen Signale wenn sich etwas ändert.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QLineEdit
habe ich, werde aber nicht schlau daraus...
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QLineEdit
QLineEdit::setText()
QLineEdit::editingFinished()
QLineEdit::textChanged()
sind wirklich nicht schwer zu verstehen.
QLineEdit::editingFinished()
QLineEdit::textChanged()
sind wirklich nicht schwer zu verstehen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung