txt datei in TabWidget öffnen - Wie gehts?

Alles rund um die Programmierung mit Qt
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Dann darfst du dich nicht wundern :P
Nach dem textEdit = new QTextEdit; zeigt textEdit auf das zuletzt erstellte. Wenn du also mit mehreren QTextEdits arbeiten willst, solltest du dir auch alle speichern, z.B. in einer QList. Oder du holst dir das aktuelle Widget per tabWidget->currentWidget(); (dann natürlich casten + prüfen).
Joont
Beiträge: 28
Registriert: 14. Juli 2010 10:18
Kontaktdaten:

Beitrag von Joont »

Also muss ich jedem TabWidget eine id geben und diese dann beim speichern abfragen? Wie stelle ich das den mit QList an?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Schon mal versucht ein QTabWidget::currentWidget() auf ein QTextEdit zu casten?
Joont
Beiträge: 28
Registriert: 14. Juli 2010 10:18
Kontaktdaten:

Beitrag von Joont »

Ne.

Ich raffe grade irgendwie gar nichts mehr weil ich zu viel versucht und nach gelesen habe. Kannst du mir vielleicht genau sagen wie ich vorgehen muss? Wäre dir wirklich sehr dankbar. :( :(
dazedly
Beiträge: 197
Registriert: 3. Oktober 2010 15:38
Kontaktdaten:

Beitrag von dazedly »

Ich rate dir dringend dich noch mehr mit oop und pointern auseinanderzusetzen. Erst die Grundlagen, dann Qt.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Joont hat geschrieben:Ich raffe grade irgendwie gar nichts mehr weil ich zu viel versucht und nach gelesen habe. Kannst du mir vielleicht genau sagen wie ich vorgehen muss? Wäre dir wirklich sehr dankbar. :( :(
Man sollte nicht aus Verzweiflung wild rumprobieren, sondern in einem Buch nachlesen, wie sich normale Zuweisungen und speziell solche von Zeigern verhalten.
Trotzdem hier ein kleines Beispiel:

Code: Alles auswählen

QTextEdit* textEdit = new QTextEdit;
tabWidget->addTab(textEdit, "Eins");
textEdit = new QTextEdit;
tabWidget->addTab(textEdit, "Zwei");
textEdit = new QTextEdit;
tabWidget->addTab(textEdit, "Drei");
textEdit = new QTextEdit;
tabWidget->addTab(textEdit, "Vier");
// jetzt zeigt "textEdit" auf das QTextEdit in Tab "Vier".

// alles schön Schritt für Schritt, dass du besser vestehst:
QWidget* currentWidget = tabWidget->currentWidget(); // aktuelles Widget holen
QTextEdit* currentTextEdit = qobject_cast<QTextEdit*>(currentWidget); // casten
if(currentTextEdit) {
  // Jippie, tadWidget->currentWidget() war ein QTextEdit
  // mach was damit
} else {
  // currentWidget ist KEIN QTextEdit, der qobject_cast gibt einen nullptr zurück
}
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Beitrag von padreigh »

ausserdem kann bei sowas setObjectName(...) hilfreich sein, damit gibst du jedem Textedit einen namen und kannst das dann zB über QTabWindget::findChild<QTextEdit*>(name) wiederkriegen
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
Joont
Beiträge: 28
Registriert: 14. Juli 2010 10:18
Kontaktdaten:

Beitrag von Joont »

@franzf: da hast du recht und das sollte ich eig auch wissen. Ich habe ja schon php etc gelernt und da saß ich auch über google und den Büchern. Mir muss woll eine sicherung durchgebrannt sein.
Na gut ich werde deinen Code jetzt schritt für schritt durch gehen und ihn mal analysieren und dann neu versuchen. Danke schon mal.
Joont
Beiträge: 28
Registriert: 14. Juli 2010 10:18
Kontaktdaten:

Beitrag von Joont »

Also das ich habe es nun hinbekommen. Jetzt wo ich was zum analysieren hatte, war es doch recht simpel muss ich sagen. Ich danke allen für die Hilfe die ich bekommen habe.

Natürlich schaue ich mir die Grundlagen auch immer wieder an. Ich bin ja noch ein anfänger und ich muss noch eine menge lernen. ;)
Antworten