Qt pobieranie elementu po nazwie "dynamiczne"

0

Witam,
uczę się Qt i żeby dodać np.: text do pola to robię tak:

ui->nazwa_obiektu->setText("Mój tekst");

To jest oczywiste, ale chciałbym zrobić tak, żeby nie wpisywać nazwy obiektu ręcznie, lecz żeby ona była wpisywana "dynamicznie" w pętli (pobieram dane z bazy). O co chodzi?

while(wynik.next())
{
QString nazwa_obiektu = wynik.value(1).toString();
ui->nazwa_obiektu->setText("Jakiś tekst"); // takie coś
}

P.S. Kod może wydawać się trochę dziwny bo jeszcze nie uczyłem się pobierania nazw kolumn, a to o nie docelowo chodzi. Przykład jest podany dla rekordów zapytania MySQL.

0

QObject i findChild ale nie brzmi to jak specjalnie dobry design.

0

No własnie nie dopisałem tego, że przez find to już robiłem - ale nie wiem jak bardzo to spowalnia działanie programu - no chyba, że to prawie żadna różnica?

Co nie brzmi jak dobry design? To co wymieniłeś? Moje podejście? Mój kod?
Serio mnie to interesuje.

Pewnie zastanawia Was skąd ten pomysł? Dlatego, że w niektórych językach jest to możliwe (np.: PHP ma $$). Jeszcze raz napiszę jaki jest zamysł.
Zamiast:

ui->nazwa_obiektu->setText();

To:

qJakiśTyp zmienna = "nazwa_obiektu";
ui->zmienna->setTect(); // tutaj podmienia zmienna na nazwa_obiektu
0

Jednak wyszukiwanie to przejście po wszystkich elementach (ewentualnie z możliwością zatrzymania po znalezienie), a bezpośrednie odniesienie się do zmiennej to bezpośrednie odniesienie się do danej/danych komórek pamięci.

0
nowy12345 napisał(a):

Jednak wyszukiwanie to przejście po wszystkich elementach (ewentualnie z możliwością zatrzymania po znalezienie), a bezpośrednie odniesienie się do zmiennej to bezpośrednie odniesienie się do danej/danych komórek pamięci.

Nawet jeśli to co z tego? Jest coś takiego jak "premature optimization", czyli poprawianie szybkości kodu w miejscu, w którym program spędza mało czasu. Jestem pewien, że to jest taki przypadek (jak podasz więcej szczegółów to się okaże).

Swoją drogą opisz swój problem pierwotny (co program ma robić z punktu widzenia użytkownika końcowego). Jako początkujący jest duże prawdopodobieństwo, że próbujesz zrobić coś prostego w pokrętny sposób.

0
MarekR22 napisał(a):

Nawet jeśli to co z tego? Jest coś takiego jak "premature optimization", czyli poprawianie szybkości kodu w miejscu, w którym program spędza mało czasu. Jestem pewien, że to jest taki przypadek (jak podasz więcej szczegółów to się okaże).

Mistrz :) To prawda, nigdy o tym nie pomyślałem. Lubię szybkie i proste rozwiązania, lubię optymalizować kod. Pominę ten problem i idę dalej.

MarekR22 napisał(a):

Swoją drogą opisz swój problem pierwotny (co program ma robić z punktu widzenia użytkownika końcowego). Jako początkujący jest duże prawdopodobieństwo, że próbujesz zrobić coś prostego w pokrętny sposób.

Nie ma co opisywać - to nie program, to nauka. Na razie sprawdzam co można zrobić i w jaki sposób na różnych przykładach. Mam formularz z nazwami obiektów takimi samymi jak nazwy kolumn w bazie danych (MySQL). A moje pytanie wywodzi się stąd, że wiele lat programowałem w PHP, a tam takie różne triki są możliwe (tak znam różnice między tymi językami).

1 użytkowników online, w tym zalogowanych: 0, gości: 1