Qt - Jak prawidłowo przesłać adres innego obiektu do innego obiektu ?

0

@MarekR22:

Po co ci adres do bazy danych w Dialogu.
Dialog ma być głupi jak but. Ma wyświetlić coś użytkownikowi, pobrać coś od niego i odesłać te coś gdzieś gdzie to jest potrzebne

a jak wyświetlę tabelę w dialogu ? bo w sumie o to mi chodzi. Poniżej zrzut, gdzie w tle okno MainWindow, a na pierwszym planie okno QDialog do którego chcę załadować tabelę z danymi - to ma być formularz do wprowadzenia niektórych danych

screenshot-20220609174926.png

1
zkubinski napisał(a):

a jak wyświetlę tabelę w dialogu ? bo w sumie o to mi chodzi. Poniżej zrzut, gdzie w tle okno MainWindow, a na pierwszym planie okno QDialog do którego chcę załadować tabelę z danymi - to ma być formularz do wprowadzenia niektórych danych

Normalnie, tworzysz sygnał który wysyła potrzebne dane, a ktoś inny kto zajmuje się bazą danych odbiera ten sygnał.

Jak włączasz silnik samochodu to nie potrzebujesz wkładać palca pod maskę samochodu.
Naciskasz przycisk (lub przekręcasz kluczyk), a sygnał przewodami idzie do silnika.

0
MarekR22 napisał(a):

Normalnie, tworzysz sygnał który wysyła potrzebne dane, a ktoś inny kto zajmuje się bazą danych odbiera ten sygnał.

Jak włączasz silnik samochodu to nie potrzebujesz wkładać palca pod maskę samochodu.
Naciskasz przycisk (lub przekręcasz kluczyk), a sygnał przewodami idzie do silnika.

ok, tyle, że w MainWindnow też otwieram połączenie do bazy danych, bo tam też jest tabela która musi być załadowana z tej samej bazy. A ja nie chcę niepotrzebnie tworzyć wielu połączeń aby coś się nie poyebauo.

1

@zkubinski generalnie, jak zaczniesz zewsząd zmieniać bazę danych to będzie bajzel.
Więc normalni ludzie tworzą klasę odpowiadającą za bazę i do tej klasy poprzez sygnały/zdarzenia/inne cuda (ale należy wybrać tylko jedna drogę) przychodzą zadania zapisz do bazy to, odczytaj z bazy tamto.
Alternatywa - umrzesz marnie, bo zobacz jedna formatka dodaje klienta, zaś druga wyświetla listę, powiedz mi ile razy na sekundę formatka wyświetlająca ma odświeżać listę? A może tylko wtedy kiedy formatka zapisująca wyśle sygnał dodawania, doda i do wszystkich zainteresowanych wyśle sygnał że lista zmieniona? Generalnie to się załatwia inaczej ale podstawą jest jedna odpowiedzialność.

0
_13th_Dragon napisał(a):

@zkubinski generalnie, jak zaczniesz zewsząd zmieniać bazę danych to będzie bajzel.

ja nie zmieniam bazy danych, bo wiem czym to się wiąże - jeżeli chodzi ci o strukturę tj. tabele, pola. Bo to już psuje integralność - mowa o bazie używanej w produkcji. Co innego jak coś testuję, sprawdzam.

Alternatywa - umrzesz marnie, bo zobacz jedna formatka dodaje klienta, zaś druga wyświetla listę

a teraz naprawdę dobre pytanie - a jak zamierzasz dodać dane, gdy masz bazę podzieloną na wiele tabel ? Twój tok myślenia jest ok, w przypadku, gdy masz jedną tabelę ze wszystkimi polami, a w tych polach dublują się pewne dane. Sztuka zrobienia dobrej bazy, to zrobić w ten sposób aby nie powielać zbędnych informacji czyli można zrobić tabelę, a w tej tabeli klucz obcy do danych w innej tabeli i stąd potrzeba zrobienia okienka do wprowadzenia chociażby imienia i nazwiska (rozpatrując przypadek tabeli która przechowuje tylko imiona i nazwiska) - bym ci pokazał strukturę bazy ale wykroczy to poza tematykę wątku. Jak skończę program, to całość będzie publicznie dostępna i będziesz mógł się z tym zapoznać

1

@zkubinski, wygląda na to że ty czytasz tylko pierwsze zdanie z akapitu a resztę omijasz, w wyniku czego nigdy nie rozumiesz o co chodzi.

0

@_13th_Dragon:

Widzę że nadal nie rozumiesz. Masz formatkę z listą produktów: naciskasz <dodaj> => otwiera się nowa formatka; wpisujesz dane produktu; naciskasz <zapisz i dodaj następny> => dodaje się produkt do bazy i masz tą samą formatkę do ponownego wypełnienia na kolejny produkt. Ale co z listą produktów pod spodem? Na niej się nie pojawił nowy produkt? Kiedy się pojawi? Skąd ta formatka będzie wiedzieć że trzeba odświeżyć listę?

Sam zauważyłeś że odświeżenie samo w sobie nie stanowi problemu, więc czytaj raz jeszcze dopóki nie zrozumiesz o co biega.

jeszcze raz - sam pytasz Skąd ta formatka będzie wiedzieć że trzeba odświeżyć listę? ano stąd, że napiszę sobie funkcję refresh - więc odpowiadam na zadane pytanie, więc nie rozumiem w czym jest problem ?

2

Wystarczy odpowiednio zaimplementować model i problem synchronizacji przestaje istnieć, bo wszystkie podpięte widoki aktualizują się automagicznie.

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