[gelöst] QGroupBox mit dynamischen Inhalt
[gelöst] QGroupBox mit dynamischen Inhalt
Hallo,
ich habe das Problem das ich eine GroupBox mit dynamischen Inhalt füllen will. Der Inhalt sind verschiedene QLabels welche mit Strings aus einer Datenbank gefüttert werden.
Die zuweisung klappt auch soweit ganz gut beim ersten mal. Jedoch wenn ich Änderungen an der Datenbank vornehme sollten auch die Labels angepasst werden. Z.B. sollen aus drei angezeigten Datensätzen 2 werden, und dann sollen auch nur 2 angezeigt werden, jedoch klappt genau dieses nicht.
Ich benutze als Parent für die GroupBox ein Widget, welches zu einem TabWidget gehört.
Die GroupBox ist in einer eigenen Klasse realisiert. Habe schon mit showEvent und hideEvent rumgespielt, jedoch ohne Erfolg.
Kann mir jemand weiterhelfen?
Gruß
Wede
ich habe das Problem das ich eine GroupBox mit dynamischen Inhalt füllen will. Der Inhalt sind verschiedene QLabels welche mit Strings aus einer Datenbank gefüttert werden.
Die zuweisung klappt auch soweit ganz gut beim ersten mal. Jedoch wenn ich Änderungen an der Datenbank vornehme sollten auch die Labels angepasst werden. Z.B. sollen aus drei angezeigten Datensätzen 2 werden, und dann sollen auch nur 2 angezeigt werden, jedoch klappt genau dieses nicht.
Ich benutze als Parent für die GroupBox ein Widget, welches zu einem TabWidget gehört.
Die GroupBox ist in einer eigenen Klasse realisiert. Habe schon mit showEvent und hideEvent rumgespielt, jedoch ohne Erfolg.
Kann mir jemand weiterhelfen?
Gruß
Wede
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Wenn ich das richtig verstehe:
1. Du machst ein Fenster auf, mit einer ComboBox die Daten aus einer Datenbank enthält.
2. Du änderst die Datenbankeinträge
3. Du machst nix anderes und in deinem Programm ändert sich nichts!?
Mh, da würde ich ja glatt einmal sagen, wie soll das denn auch gehen. Wenn eine Änderung kommt und du etwas neues brauchst, musst du dir eine Funktion bauen, die dann wenn du Sie brauchst aufgerufen wird.
Etwas nach Pos 2 muss passieren, dass deine Änderungen durchführt.
1. Du machst ein Fenster auf, mit einer ComboBox die Daten aus einer Datenbank enthält.
2. Du änderst die Datenbankeinträge
3. Du machst nix anderes und in deinem Programm ändert sich nichts!?
Mh, da würde ich ja glatt einmal sagen, wie soll das denn auch gehen. Wenn eine Änderung kommt und du etwas neues brauchst, musst du dir eine Funktion bauen, die dann wenn du Sie brauchst aufgerufen wird.
Etwas nach Pos 2 muss passieren, dass deine Änderungen durchführt.
Code: Alles auswählen
while(medikamentenCursor->next())
{
new QLabel(medikamentenCursor->value("name").toString(), this);
new QLabel(medikamentenCursor->value("bezeichnung").toString(), this);
new QLabel("0" + medikamentenCursor->value("verfall").toString(), this);
}
Diese GroupBox ist zu sehen auf dem ersten Tab. Wenn ich nun auf einen anderen Tab wechsle, da dann was an der Datenbank ändere, und dann wieder zum ersten Tab wechsle möchte ich das die GroupBox irgendwie aktualisiert wird, d.h die alten Label sollen weg und die neuen sollen geschrieben werden. Ich weiß aber leider nicht wie ich dies realisieren kann. habe schon mit dem showEvent und hideEvent hantiert jedoch werden die alten Labels nicht zerstört.
Ich hoffe das ich mich jetzt etwas besser ausgedrückt habe.[/b][/code]
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Nicht wirklich.
ComboBox leeren:
http://doc.trolltech.com/3.3/qcombobox.html#clear
Bei Tabwechsel mit einem SIGNAL eine Aktion ausführen:
http://doc.trolltech.com/3.3/qtabwidget ... entChanged
ComboBox leeren:
Code: Alles auswählen
comboxBox -> clear();
Bei Tabwechsel mit einem SIGNAL eine Aktion ausführen:
Code: Alles auswählen
connect( tabWidget, SIGNAL(currentChanged(QWidget *widget ) ), this, SLOT(slotComboboxNeu(QWidget *widget ) ) );
Code: Alles auswählen
slotComboboxNeu(QWidget *widget ) {
if ( widget == widgetMitderComboBox ){
// tue hier while mit Items füllen.
}
}-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Nein ist es leider nicht!
QGroupBox (ist von QFrame abgeleitet) hat keine clear funktion.
Habe es jetzt anders gelöst. Schriebe die Daten in einen HTML String und gebe sie nur mittels eines Labels aus. bei currentchanged desTabWidgets durchlaufe ich die Erfassung der Daten neu und setze den Text des labels neu.
Danke für die hilfe
Wede
QGroupBox (ist von QFrame abgeleitet) hat keine clear funktion.
Habe es jetzt anders gelöst. Schriebe die Daten in einen HTML String und gebe sie nur mittels eines Labels aus. bei currentchanged desTabWidgets durchlaufe ich die Erfassung der Daten neu und setze den Text des labels neu.
Danke für die hilfe
Wede
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten: