kod na pastebin

Mam sobie taki kod, to nie jest prawdziwy program tylko wyciągnąłem samą zasadę działania żeby działało jak najprościej i można było sobie wkleić jak ktoś ma Qt Creatora:
1) Mam listę obiektów i nie chcę w żaden sposób na nią wpłynąć,
2) Chcę wybrać kilka jej elementów (w przykładzie: te których nazwa nie jest pusta, lista indeksów) i posortować na podstawie jakichś ich wartości,
3) Chcę otrzymać listę indeksów do tej oryginalnej listy, posortowanych z użyciem tych wartości.
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@amb97: Qt, ponieważ ma dobrze zrobioną dokumentacje i aktywną społeczność, ogromna ilość darmowych modułów (Bluetooth, WebEngine, Multimedia, QtCharts), łatwy próg wejścia (Qt Designer i później tylko łączenie), kod na otwartej licencji jest taki sam jak na licencji komercyjnej (jakość kodu, Qt jest przepisany na C++11), łatwość wprowadzenia wielowątkowości (system SIGNAL SLOT i QThread) i na koniec mocno prywatna opinia ze Qt jest ładniejsze ( ͡º ͜ʖ͡º
  • Odpowiedz
@amb97: W Qt masz darmowe licencje LGPLv/3 i GPLv2/3. Pierwsza pozwala na zamknięcie programu ale z linkowaniem dynamicznym, natomiast druga wymusza otwarty kod. Dodatkowo Qt ma całe SDK (QtCreator, QtDesigner, Linguist; QtCreator jest bardzo często polecanym IDE do C++ na linuxa/windowsa). Od wersji 5.7 otwarto wiele modułów do tej pory dostępnych tylko w licencji komercyjnej. Link. Niestety ponieważ jestem dość początkującym programistą mój kod niezbyt nadaje się jako przykład
  • Odpowiedz
@lionbest: Znasz jakąś książkę z dobrym wstępem do zrozumienia o czym piszesz. U mnie problem jest w tym, że nie rozumiem podstaw. I nie mogę znaleźć wytłumaczenia jak to wszystko działa. (Swoją drogą zadziałało to co napisałem -- ale nie wiem do końca dlaczego ( ͡º ͜ʖ͡º) ) Interesuje mnie głownie python Qt i C/C++ więc najlepiej jak by to było na przykładzie właśnie tych
  • Odpowiedz
@lionbest: No wlasnie. Sygnały nie działają. Ja go nie muszę w sumie kończyć. Ale chce swój własny sygnał, którym cos, cokolwiek przyśle do DamTerm'a. W przykładzie używam dwóch sygnałów (testt oraz pasInfo) i żaden nie drukuje nic na wyjściu standardowym. Pomimo że sama metoda run się uruchomiła.
  • Odpowiedz
@lionbest: Przykład jest okrojony (dlatego nie ma sensu). Spodziewałem się wyniku:
Start!
TESTETT!
To się nie wyświetla
To się
  • Odpowiedz
@pierwiastekzminusjeden: No spoko, jedyne co mogę ci pomóc to żebyś korzystał z raczej z najnowszej wersji, ta zaciągnięta z qt.io jest dość stabilna i w miarę nowa chyba 4.0.3 .
Jeżeli robisz pod Windowsem to mimo wszystko lepiej korzystać z kompilatora od Visuala (QtCreator sam wykrywa) bo debuger od MinGW krótko mówiąc nie działa jak trzeba. Pod Ubuntu nie ma problemu z najnowszym G++ oraz Clangiem.
QtCreator niema nic szczególnego
  • Odpowiedz
#cpp #qt #programowanie

Mirki jak mogę odpalić debug z konsoli w QtCreatorze? Potrzebuję zdebugować program, ale jest on zrobiony dla konsolki windowsa i ma być odpalany z CMD z listą argumentów. Jak odpalić to tak aby mi pokazało w której linii kodu się wysypuje?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#program #linux #programowanie #gtk #gnome #qt #kde
Potrzebuję programu który jedyne co robi to wyświetla na ekranie (na cały ekran prócz panelu) dowolny obrazek podany do programu.

Może być np. przez komendę: widok-obrazka -file="adresobrazka.png".

Sam program ma nie mieć żadnej ramki okna, żadnego interface ani menu. Jedynie ikonę w pasku zadań/liście okien do min/max/zamknij. Żadnych dodatkowych ukrytych funkcji. Jednym słowem, najmniejszy i najlżejszy możliwy "wyświetlator"
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Próbuję sobie bibliotekę SDL (2.0.4) zgrać z Qt (5.7.0), tzn. zarządzać za pomocą biblioteki SDL zawartością QOpenGLWidget. Nie wiem czy to istotne, ale Linux + Nvidia (nie Nouveau).

Kolejność działań
1) SDL_Init(SDLINITEVERYTHING)
2) sdlw = SDL_CreateWindowForm((void*)ui->openGLWidget->winId())
3) sdlren = SDL_CreateRenderer(sdlw, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
  • 37
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Dijuna: SFML do obsługi eventów etc. Możesz też w nim wykorzystać czystego OpenGLa. No i dla mnie SFML nad SDLem ma tę wyższość, że jest obiektowy.
  • Odpowiedz
@GlenPL: Przecież wiesz, że używanie standardu języka który ma mniej niż 15 lat to w środowisku C/C++ bywa ekstrawagancja, albo zadanie nie do wykonania (a przy próbie przejścia na współczesny kompilator wszystko pada, bo jest jakiś legacy kod napisany w Borlandzie). W embedded jest jeszcze lepiej. Do dzisiaj są ludzie, którzy uznają, że C99 jest niekoszerne. Po #!$%@? 17 latach. To jest i tak używają cech z C99 które każdy
  • Odpowiedz
Hej mam klasę która dziedziczy z QThread i wykonuję coś takiego:

self.quit()
self.exit()
print("Po exit?")

Moim zdaniem print się nie powinien wykonać nigdy.
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@xaoc: Zwykle w programowaniu używa się flag do zasygnalizowania chęci ubicia wątku. Podejrzewam, że te funkcje ustawiają taką właśnie flagę, a wątek faktycznie ubijany jest w innym momencie. To są tylko moje przypuszczenia, bo w Qt się nie bawiłem, ale mechanizmy zazwyczaj są podobne.
  • Odpowiedz
A skoro ten wątek nie ma nic więcej robić to co mam wywołać na nim samym wait()?


@xaoc: return (bo zakładam, że chodzi Ci o to jak nie wykonywać nic więcej w metodzie run() wątku)

Metody exit() i quit() są w QThread tożsame (tyle że quit() jest slotem, a exit() może jeszcze przyjąć kod wyjścia) i robią tylko tyle, że jeśli wcześniej w wątku wywołałeś exec() (czyli uruchomiłeś pętlę zdarzeń w tym wątku), to exit/quit po prostu tą pętlę zakończą i wątek zakończy swoją pracę (ale nie w momencie wywołania exit/quit, tylko po zakończeniu bieżącego
  • Odpowiedz
Pod Linuksem nakodziłem sobie program w Qt 5.4 używając modułu qwebkit. Chciałem skompilować na Windowsie i zonk...
Z tego co wyczytałem to od wersji 5.6 (a taką mam na win) nie ma już wsparcia dla webkita; ale czy on był w ogóle obecny na Windowsie? Jak ściągnę 5.4 to bez problemu skompiluję to co nakodziłem pod linuchem przy użyciu tych modułów (webkit, webkitwidgets)?

#qt #qtcreator #cpp
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wyrewolwerowanyrewolwer: Bo oni od QtCreatora to są tacy niepełnosprytni czasem... z jednej strony robią kawał zajebisterj roboty, ale z drugiej napisali specjalnie dla QtCreatora cały framework do paneli i nie jest on zbyt dobry. Już samo Qt daje w standardzie o niebo lepsze rozwiązanie (QMdiArea i QDockArea), użytkownik może sobie poukładać panele jak mu się podoba.

Do tego mam notoryczne problemy z debuggerem (lubi się zawiesić, długo czyta zmienne, itp)
  • Odpowiedz
@vipe: Mogę się spytać która wersja bo ostatnio stabilna stała się chyba 4.0.0 ?
Jedynie co zauważyłem to delikatnie odświeżony wygląd.
W sumie opcje debugowania nic nie poprawili, no może poza kilkoma miejscami gdzie podgląd zmiennych lokalnych się wieszał.
  • Odpowiedz
#programowanie #cpp #qt

Mirki jak zbadać wagę klasy wraz ze wszystkim? W sensie ile waży cały obiekt wraz ze wszystkim co ma w środku?

Chcę się dowiedzieć ile waży QDateTime, ale sizeof w mojej skromnej opinii pokazuje zwyczajne bzdury, bo rzekomo ma 8 B. Szkoda tylko, że QDate też ma 8 a QTime ma 4, a QDateTime składa się z obu. Jak sprawdzić ile waży QDateTime
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: Metoda ze sleepem zakłada użycie zewnętrznego programu do pomiaru użycia pamięci. Nie wiem na ile zewnętrzna aplikacja ma dostęp do dokładnego zużycia przez daną aplikację (a o ile do przewidzianego zużycia tak jak to widzi system).

Myślę, że warto by napisać sobie funkcję jak tutaj i wywołać ją przed i po stworzeniu obiektu, obliczyć różnicę. Tylko tak jak wcześniej pisałem - nie wiadomo czy taka funkcja też nie będzie
  • Odpowiedz
#programowanie #cpp #qt

Orientuje się ktoś może jaki program wygeneruje mi ogarniętego UMLa z C++ qtowego? Enterprise Architect zdaje sobie nie radzić z qtowymi rozszerzeniami typu private slots (których byśmy nie chcieli pokazywać), signals itd.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: Visual studio tworzy fajne UMLe , co prawda zawsze to robiłem dla projektów pisanych w C# jednak dla C++ może też się uda
  • Odpowiedz
#cpp #programowanie #qt

Orientuje się ktoś czemu pluginy do Qt (w sensie nie do QtCreatora a do aplikacji) koniecznie muszą być QObjectami? Nie mogę znaleźć wyjaśnienia czemu AKURAT każdy plugin MUSI koniecznie być QObjectem. Wyjaśnienie może być dowolne tak naprawdę "bo QPluginLoader używa qobjectcast i spodziewa się QObjectu, tyle", ale chciałbym wiedzieć czemu ja muszę to robić.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tell_me_more: Moja teoria jest taka, że QPluginLoader zwraca QObject* z instance(), bo tak jest zrobione (QObject pełni rolę "szablonu" pod którym można ukryć wskaźnik na faktyczny obiekt). Po odebraniu QObject* trzeba zrobić qobject_cast na to co my tam chcemy za interfejs wyciągnąć. No wygląda mi to po prostu na taką przyjętą konwencję ukrywania uniwersalnych wskaźników pod QObject*.
  • Odpowiedz
@Khaine: bycie QObjectem jest potrzebne, żeby MOCe działały (propertisy, sloty, sygnały, i inne bajery z tymi ich makrami). Pluginy używają tej mocowej magii do specyfikacji interfejsu itp:

QPLUGINMETADATA(IID "org.qt-project.Qt.Examples.PlugAndPaint.FilterInterface" FILE
  • Odpowiedz
#programowanie #cpp #qt

Tak się zastanawiam. Po co ktoś miałby robić cokolwiek w C++ nie używając bibliotek Qt? Programujemy z kolegą w Qt od nooo, kilku dobrych miesięcy już. Nie mniej niż 3 na pewno. No i przyznam się szczerze, że ja po prostu innej drogi w C++ niż Qt to po prostu nie widzę. Nie mam pojęcia czemu miałbym nie używać Qt, nawet jeśli tylko używając niektórych elementów.

1. Licencja LGPL, czyli jak tylko nie robimy jakichś naprawdę cudackich rzeczy to jest full yolo.
2. Qt ma obecnie rozwiązanie dla prawie wszystkich podstawowych rzeczy jakie tylko w C++ można zrobić, cały mechanizm signal/slots, banalne wątkowanie, GUI itd.
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: Bo Qt wcale nie jest takie super, nie jest ani szybsze niż stl/boost, wymaga swojej notacji (QObject) i wymaga, uwaga, bibiliotek Qt. Ile zajmują portable biblioteki Qt?
  • Odpowiedz
@mackar: no tak, to rozumiem, zgłasza błąd bo nie ma w tabeli relacji żadnego obiektu o kluczu o wartości NULL... mi raczej chodzi o to jak w takim razie obsługiwać relację zero-to-many... odpuściłem sobie już szukanie odpowiedzi, zmieniłem relację na one-to-many i dodałem grupę "none", ale to hack okropny...
  • Odpowiedz