Zmiana nazw argumentów

0

Piszę program w QT, który po naciśnięciu odpowiednich dwóch przycisków (w osi X i Y) powinien zapalać odpowiednią lampkę. Czy istnieje jakaś metoda odnoszenia się do nazwy argumentu? Próbowałem używać

#define P(numer) lampka##numer

którą następnie próbowałem użyć w

ui->P(num)->hide() // hide bo robię na buttonach i symuluje na razie lampki

ale w takim wypadku zwraca mi

'class Ui::Dialog' has no member named 'lampkanum'

próbowałem również utworzyć tablicę wskaźników i w ten sposób podać wskazywany obiekt jednak to również nie przyniosło oczekiwanych rezultatów. Czy w ogóle zmiana argumentów i do napisania w jednej funkcji czy muszę po prostu zrobić milion warunków if w zależności od konfiguracji przycisków? Z góry dziękuję za pomoc i pomysły.

0

To: #define P(numer) lampka##numer działa w czasie kompilacji.
Czyli zastąpi to: ui->P(num)->hide() na ui->lampkanum->hide()

0

No tak ale jeśli np:
int num=12;
to nie powinno

P(num)

dać lampka12

0

Którego słowa nie rozumiesz w zdaniu: - "działa w czasie kompilacji" ?

0

Dobra już kumam, tak więc moje pytanie dalej brzmi czy istnieje jakaś możliwość dostępu do lampek/przycisków korzystając z zmiennej czy muszę pisać dla każdej lampki oddzielnego if'a?

1

WTF?! Pisz ifa dla każdej. A jak ich będzie milion to będziemy mieli jednego geniusza programowania mniej bo będziesz miał zajęcie do końca życia...
Lekcja na dziś: tablice.

0

Nie do końca rozumiem Twój problem, ale takie próby operowania na nazwach zmiennych zazwyczaj miały proste rozwiązanie: tablice. Zamiast lampka1 wystarczy przecież lampka[1].

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