Cześć

Sprawa jest taka, mam kilka QLineEdit, QComboBox, etc. w których prezentuje dane z sql. Dane z sql wcześniej skopiowałem na strukturę:

struct custDataStruct {
      QVariant cust_id;
      // inne zmienne
}

Każdy QLineEdit ma podłączony sygnał editingFinished (lub podobny) do mojej funkcji checkCustDataChanged() więc jak coś się user zmieni, porównuje z danym z custDataStruct i jak ewentualnie ustawiam jego "buddy" QLabel z fontem bold
Teraz chciałbym to trochę jakoś inteligentniej zapisać, żeby nie musieć w kodzie pisać porównania dla każdego Widgeta, więc myślę, że trzeba będzie to też zrobić za pomocą struktury, ale jako że klepie QT i w ogóle C od niedawna, to może są inne prostsze, lepsze sposoby.
Chciałem ogarnąć to w ten sposób:

struct custDataQedits {
        bool modified=false; // ma wskazywać czy dany widget ma zmodyfikowane dane
        QLineEdit *pointer;   // ma zawierać wskaźnik do obiektu QLineEdit
        QLabel *labelpointer;  // ma zawierać wskaźnik do "buddy" QLabel
  // tu nie wiem jak zapisać odwołanie do odpowiedniej zmiennej w custDataStruct dla odpowiedniego QLineEdit
}

Następnie zainicjuje custDataQedits[20] i podam każdemy odpowiednie wskaźniki.

Idea jest taka, że kiedy startuje mi funkcja checkCustDataChanged() żeby to w jakiejś zgrabnej pętli for ogarnąć:

for(i=0;i<count(custDataQedits);i++) {
     // i tu sprawdzam czy dla każdej iteracji custDataQedits to co pokazuje pointer->text() jest takie samo jak wartość w strukturze custDataStruct, ewentualnie ustawiam custDataQedits[i].modified=true, robie font bold dla labelpointer,etc.
}

Później przy zapisie danych wybiorę z tej struktury tylko obiekty ze zmienną modified=true

Czy jest może inny sposób żeby ogarnąć np. 20 QLineEdit żeby nie pisać porównywania wartości dla każdej?

I drugie pytanie: Czy dałoby się w strukturze custDataQedits zamiast wskaźnika do QLineEdit zapisać adres funkcji QLineEdit::text() ? bo na przykład QComboBox ma funkcje currentText() i musiałbym je jakoś rozróżniać w pętli for, żeby używać odpowiedniej funkcji (co się oczywiście da zrobić)

pozdrawiam
Marek