Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przekazanie wskaźnika danego obiektu do obiektu innej klasy.

Ostatnio zmodyfikowano 2013-10-27 19:38
Autor Wiadomość
CodeFun
Temat założony przez niniejszego użytkownika
Przekazanie wskaźnika danego obiektu do obiektu innej klasy.
» 2013-10-27 19:38:45
No i kolejny problem z którym walczę już od paru godzin :/.
Potrzebuję dostać wskaźnik z obiektu (tablicy), która się znajduje w QMainWindow. Wskaźnik do tej tablicy potrzebuje w  innej osobnej klasie, która ma wykonać pewne operacje na tym obiekcie (tablicy) znajdującej się w QMainWindow.
Czego próbowałem.
Przekazać zdeklarowany wskaźnik do tablicy z QMainWindow w konstruktorze klasy, która ma na tej tablicy operować. Brzmi logicznie, ale nie działało tzn. kompilacja bezbłędna, ale  nie widziałem efektu. Tak jakby wskaźnik gdzieś się po drodze gubił, zmienił adres.
Robiłem to tak:
C/C++
//W QMainWindow
tablica * tablicadoradcy;
tablicadoradcy = new tablica( this );

//funkcja slotu w którym tworzony jest kolejny obiekt (okno) wraz z przekazanym // //wskaźnikiem do tablicy

//tak wyglada def funkcji slotu
void nowydoradca( tablica * Oknotabl );
// tak wyglada wywolanie funkcji slotu
nowydoradca( tablicadoradcy );

// a tak deklaracja  i tutaj przekazuje w konstruktorze wskaznik do tablicy
void OknoGL::nowydoradca( tablica * Oknotabl )
{
    Ndor * nowe = new Ndor( Oknotabl );
    nowe->show();
}
//tak wyglada definicja konstruktora obiektu klasy Ndor
Ndor( tablica * Oknotabl );
// dodatkowo w Klasie Ndor jest definicja wskaznika roboczego (pola) do obiektu //tablica
tablica * wskroboczy;

// i tak wylada deklaracja konstruktora
Ndor::Ndor( tablica * Oknotabl )
    : wskroboczy( Oknotabl )
{ }

Po powyższych zapisach program się kompiluje, ale nie widać żadnego efektu na tablicy. Sprawdzałem w poniższy sposób, ale nic sie nie pokazuje w wskazanej komorce.
C/C++
//w konstruktorze obiektu Ndor
QString jakis = "sjsjsjs";
QTableWidgetItem * ns = new QTableWidgetItem( jakis );
wskroboczy->setItem( 1, 1, ns );

Co robię, źle. Może spróbować stworzyć przyjaźń klasy Ndor, która ma operować na tablicy z klasą OknoGl, która ma zdeklarowany wskaźnik do tej tablicy i wtedy próbować poprzez metodę na nim działać.
EDIT: !!!!!!!!!!
+3h nad programem i problem rozwiązany :]. Jak tak dalej pójdzie to może przed emeryturą skończę.
W czym tkwił lucyfer.
Wystarczyło zgłosić przyjaźń klasy Ndor z QMainWindow. Dalej w konstruktorze obiektu Ndor przekazać wskaźnik do QmainWindow przez this. W ten sposób uzyskałem dostęp w Ndor to wszystkich czarów z QMainWindow. Dzięki temu mogę odnieść się do tablicy jako obiektu klasy tablica i wywoływać jego metody.


P-94689
« 1 »
  Strona 1 z 1