Aktywne Wpisy

SzubiDubiDu +286
Przez te ostrzejsze przepisy z wyprzedzaniem na przejściu zauważyłem po sobie, że mniej się skupiam na tym czy jakiś pieszy zbliża się do przejścia a więcej pilnuję czy jadę w równym tempie co auto obok ( ͡° ʖ̯ ͡°)
Ktoś też po sobie zauważył, że mniej zwraca uwagę na rzeczywiste bezpieczeństwo a więcej skupia się by nie zarobić w głupi sposób mandatu?
#polskiedrogi #prawojazdy #kiciochpyta
Ktoś też po sobie zauważył, że mniej zwraca uwagę na rzeczywiste bezpieczeństwo a więcej skupia się by nie zarobić w głupi sposób mandatu?
#polskiedrogi #prawojazdy #kiciochpyta
Tyrande +201
Miałam wczoraj dać koleżance dildosa w kształcie papieża, wzięłam na uczelnie i okazało się, że nie przyszła, bo leży na L4.
Musiałam kitrać, żeby z plecaka nie wypadło, bo byłby pszypał xD
Nie pytajcie skąd mam takie rzeczy, dla zainteresowanych dam kontakt do osoby, która ma takie durne pomysły i drukarke 3d.
#gownowpis #2137 #logikarozowychpaskow
Musiałam kitrać, żeby z plecaka nie wypadło, bo byłby pszypał xD
Nie pytajcie skąd mam takie rzeczy, dla zainteresowanych dam kontakt do osoby, która ma takie durne pomysły i drukarke 3d.
#gownowpis #2137 #logikarozowychpaskow




Mam login screen (main window), loguję się i po poprawnym zalogowaniu wyskakuje okienko (na razie wszystko działa) jednak nie zamykam login screenu, bo mogę zalogować kolejne konto i chcę, by pojawiło się kolejne okienko (takie samo tylko z innymi parametrami), tylko problem w tym, żeby każde z tych okienek wykonywało swoje pętle tzn żeby nie było tak że najpierw pętle wykonuje login screen, później okno 1 a na końcu okno 2, tylko żeby wszystko odbywało się w tym samym czasie. Da się to jakoś zrobić w miarę łatwy sposób? Dodam, że próbowałem coś robić z tymi timerami w QT ale nie za bardzo to wychodziło.
Przepraszam, że wołam ale to w końcu trochę #programowanie a może ktoś robił coś podobnego.
Ogólnie taki jest zarys:
Uruchamiamy program, pojawia się menedżer z listą procesów do wyboru, wybieramy proces z listboxa kilkamy start i do tego nowo otwartego GUI jest przesyłany PID procesu, w nowym oknie jest wypisanych kilka danych z tego procesu + opcje do wyboru, (menedżer wciąż jest otwarty) no i w tym oknie mamy coś takiego:
void function()
{
functionA();
functionB();
functionC();
}
Każda z tych funkcji zawiera jakieś tam
Teoretycznie jeszcze nie próbowałem jak to wygląda bez wątków, jednak myślę że przy około 10 oknach będzie już kilka sekund opóźnienia. :(
functionA()i zakolejkujfunctionB()", itd. Jeżeli każde z tych wywołań będzie w miarę krótkie, to responsywność powinna się zachować.Kolejkować zdarzenia możesz tym: http://doc.qt.io/qt-4.8/qcoreapplication.html#postEvent
Chodzi mi o to: w mainwindow.h mam:
CoreWindow *newwindow; // wskaznik do nowego okna
i w mainwindow.cpp mam:
newwindow = new CoreWindow();
newwindow->show();
I to działa super, tylko teraz w tej klasie CoreWindow tworze obiekty innych klas i teraz już nie wiem: tworzyć je jako wskaźniki czy normalnie? coś w stylu Game
new) i używa przez wskaźniki, chociaż czasem można je trzymać bezpośrednio. Wyjątkiem są te klasy, które używają jakiegoś współdzielenia, i ich obiekty bezpośrednio trzymają tylko wskaźnik do zawartości (d-pointer), np.QPixmap,QSettings- te zwykle trzyma się bezpośrednio.Każdy
QObjectma wskaźnik do rodzica (teżQObjectu), przypisany przy tworzeniu. Jeżelidel newwindow;
tylko jak komputer ma się domyślić co usunąć, skoro tych okien jest 10, chyba że ja coś źle zrobiłem i tak
newwindowto konkretny wskaźnik na konkretne okno, więcdelete newwindowzniszczy i zwolni ten konkretny obiekt.Aha, jeszcze jedna ważna sprawa - QObjectów generalnie nie należy usuwać przez
delete, tylko przezQObject::deleteLater()(to jest slot, można go do czegoś podpiąć).Jeżeli masz jakieś zarządzanie tymi oknami, to pewnie wskaźniki do nich chcesz trzymać w jakimś vectorze czy czymś takim, ewentualnie mapie. Ale możliwe, że w ogóle tego nie potrzebujesz,
newwindow = new CoreWindow();newwindow->show();
Czyli wystarczy, że podepnę załóżmy pod kontrolkę "X" na oknie to:
this.deleteLater();
I mam zniszczone to okno razem z wszystkimi obiektami w nim utworzonymi? Bo aktualnie sprawdzałem na zużycie RAM przez program i przy otwieraniu nowych okien zużycie się zwiększa, a przy zamykaniu nic się nie dzieję, choć nie
@morsisko: Tak, oczywiście o ile
thisbędzie tym oknem. Nie wiem, czego używasz do wiązania sygnałów ze slotami czy może robisz to ręcznie. Jeżeli tworzysz okno w QtCreatorze, i jakieś kontrolce podpinasz slot pod sygnał, to domyślnie tworzony jest slot właśnie w oknie, czyli tak jak trzeba. W innych IDE pewnie jest podobnie, ale głowy za to nie dam.this->deleteLater(); umieściłem w destruktorze okna. Co prawda za wyświetlanie tych msgboxów odpowiedzialna jest
deleteLater()w destruktorze nie ma sensu!deleteLater()właśnie zajmuje się wywołaniem destruktora (tylko z możliwym jakimś tam opóźnieniem).Zamknięcie okna (krzyżykiem) nie powoduje usunięcia obiektu okna, powoduje tylko, że okno jest ukryte. Możesz je z powrotem pokazać przez
show().delete uiwystarczy. Ale destruktor musi przez coś zostać wywołany.newwindow = new CoreWindow();newwindow->set_propeties(process_ID[ui->process_list->currentRow()], process_HWND[ui->process_list->currentRow()]);
newwindow->setAttribute(Qt::WA_DeleteOnClose);
newwindow->show();
Po zamknięciu msgboxy już się nie wyświetlają i zużycie RAM również spada.
Dzięki za całą pomoc. :)
Użycie
DeleteOnClosewygląda na najlepsze wyjście. Zapomniałem, że coś takiego jest.