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,
  • 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,
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
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
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
  • 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
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 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