@morsik: GUI w QMLu to EZ robota, jest moduł Qt Quick Controls 2 który można stylizować w zależnie od platformy. Faktycznie bez tego (albo wersja 1 modułu) byłoby ciężko i skończyłoby się na tym, aby dynamicznie ładować różne pliki QMLa. W C++ głowie się pisze modele i komunikacje urządzeniami, ew jakieś customowe elementy graficzne.

@zortabla_rt: W QMLu (JavaScript) jesteś w stanie wyklepać 99% aplikacji (prócz inicjalizacji), łącznie z
  • Odpowiedz
Treść przeznaczona dla osób powyżej 18 roku życia...
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bl4desofglory: funkcja selectOption jest wywoływana w pętli nieskończonej i default swój blok wykonuje dla jakiejkolwiek innej wartości prócz liczb całkowitych. Wywołanie tej funkcji jeszcze raz w defaulcie powoduje segmentation fault.
Tak jakby ta zmienna w selectOption już się nie chciała zmienić więcej
  • Odpowiedz
@TMBRK: Okej, to nie zadziałało, bo wprowadzona przez użytkownika wartość nie znikała ze strumenia wejściowego, gdyż była niepoprawna, stąd program zapętlał się rekurencyjnie, aż mu się pamięć skończyła i poleciał crash. Dlatego jak coś pójdzie nie tak to strumień wejściowy trzeba wyczyścić:

void clean()
{
cout << "Bledna wartosc" <<
  • Odpowiedz
#cpp #qt

http://zetcode.com/gui/qt5/snake/

Mamy tutaj taki przykładzik. Czy to jest normalne, że klasa ze stanem aplikacji dziedziczy po QWidget? Pytam w takim sensie, czy tak ludzie robią przy normalnych aplikacjach biorąc pod uwagę rozdzielenie logiki od prezentacji.

Na
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ponownie muszę się spytać o ten sam problem. Czemu mi to nie działa? Uchwyt na plik otwarty z in, out, ate. Wszystko ma uprawnienia do odczytu i zapisu do tego pliku. Jak wiadomo plik przekazuję przez referencję w argumencie. Dane w pliku są zawarte w formacie:
anna|białek|12312321
michał|jajek|123332132

Proszę poradźcie czemu mi to nie chce działać XD

void
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Uchwyt na plik otwarty z in, out, ate


@TMBRK: this

jak chcesz czytać, skoro jesteś na końcu pliku?

poza tym, polecam konstrukcję while(std::getline(file,txt)){} - nie musisz sprawdzać good() eof(), itp, bo getline zwraca strumień, jeżeli się skiepści w trakcie getline, to while się przestanie wykonywać
  • Odpowiedz
kurła, co dokładnie wpisać do kodu źródłowego ;D, a dokładnie do drugiej klasy

@ChoNoTu: Zrób wszystko publiczne, stwórz obiekt klasy i po prostu pobierz wartość.

int x = obiekt.zmienna;

albo robisz funkcje, która pobiera wartość.
  • Odpowiedz
Jak zapewne wiesz projekt w Qt to dość sporo plików a nie kilka linijek jak w PHP.


@defoxe: projekt w Qt może być zarówno w jednym .cpp jak i w wielu plikach, w swoim poście napisałeś "w aplikacji jest użyty tylko webengine", co sugeruje stosunkowo prosta aplikację. i skąd ta deprecjacja PHP, język jak język. facebook to aplikacja na kilka linijek?

i ja to chyba jestem nienormalny, że patrzę po
  • Odpowiedz
i skąd ta deprecjacja PHP


@MamCieNaHita: jaka deprecjacja? Nie oburzaj się tak... Konstrukcję ma trochę jednak sam w sobie prostszą. Wyświetlenie hello world w php a qt jednak ma inną długość kodu i złożoność całego procesu. O to mi tylko chodziło.

projekt w Qt może być zarówno w jednym .cpp jak i w wielu
  • Odpowiedz
Jeśli ktoś lubi gamedev i konkursy, to właśnie wystartowała czwarta edycja mojego GameDev Challenge (tym razem we współpracy z LiveOverflow).
Szczegółow jest dość sporo, więc zachęcam do rzucenia okiem na mojego bloga:
https://gynvael.coldwind.pl/?lang=en&id=697

Powodzenia :)

Garść tagów: #javascript #html5 #gamedev #programowanie oraz (bo WASM) #cpp #cplusplus #rust
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie ufajcie zbytnio temu co widzicie. Z godzinę szukałem błędu kompilacji error C2504: '': base class undefined. A problem był taki, że qt creator podświetlał mi nię tą część kodu co była tak na prawdę kompilowana.

Było coś takiego:

#ifndef _MAC

typedef jakis
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dpietrek: Zawsze można użyć static_assera, żeby sprawdzić co w tym typie siedzi.
No cóż, żeby łatwiej takie błędy łapać, to koncepty są potrzebne. Dopiero w C++20 ma wejść.
  • Odpowiedz
Dzień dobry Wykopki! ( ͡° ͜ʖ ͡°) Robimy sobie małą przerwę świąteczną - dziś zapraszamy na ostatni tegoroczny wpis - kontynuujący serię o #kompilacja ᕙ(⇀‸↼‶)ᕗ

cpp-polska.pl/post/teoria-kompilacji-preprocessing (。◕‿‿◕。)



Miłego za-czytania i do zobaczenia po nowym roku! (⌐ ͡■ ͜ʖ ͡■)
C.....a - Dzień dobry Wykopki! ( ͡° ͜ʖ ͡°) Robimy sobie małą przerwę świąteczną - dzi...

źródło: comment_1b1Q472xX0gxFitQ3zt8iJvnK9sTDf42.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CppPolska: Co do operatora ## i przykładu z życia:

Niestety, ale nie przychodzi mi na myśl żaden przykład z codziennej praktyki, który mógłbym tutaj przedstawić. Może Wam kiedyś było potrzebne użycie któregokolwiek z tych operatorów?


Ja piszę głównie w C, gdzie nie mam klas, konstruktorów, list inicjalizacyjnych i używam tego łącznika w następujący
  • Odpowiedz
Drogie mirki nie wiem czemu mam problem z fstream. Coś nie chce mi czytać pliku w funkcji do której przekazuję orginalny obiekt fstream (uchwyt na plik otwarty z out, in, ate).

void showBook(fstream& plik){
string dane;
if(plik.good()==true){
while(!plik.eof()){
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #clion #sfml #cpp
Hejka Mirki potrzebuję pomocy z biblioteką sfml. Ponieważ korzystamy na uczelni z cliona to odstawiłem codeblocka. I teraz mam problem bo nie potrafię tego dołączyć ( ͡° ʖ̯ ͡°) Najpierw mi wyskakiwał błąd gdy dołączałem odpowiednią formułkę do CmakeList.txt ale jakoś odnalazłem rozwiązanie i nic mi nie wyskakiwało już na czerwono. Ok więc wklejam napisany wcześniej kod i otrzymuję
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mireczki mam funkcję, która zwraca fstream. Jeśli plik się nie otworzy chciałbym sobie z niej wyjść. Najlepiej coś na wzór return, jednak tutaj tego nie da się zrobić, bo funkcja jest non-void. Exit tak samo nie działa z uwagi na non-void XD

fstream otworzBaze(string nazwaPliku){
fstream plik;
plik.open(nazwaPliku, ios::in|ios::out);
if(plik.good()!=true) {cout <<"BŁĄD OTWARCIA BAZY KSIĄŻKI!\n"; exit();}
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Chciałbym trochę bardziej ogarnąć vima pod programowanie.

Co polecacie do vim-a, żeby zrobić z niego IDE? Jest jakiś najlepszy config w necie do tego? Znalazłem przynajmniej dwa ale oba z nich są częściowo nieaktualne.

Chciałbym mieć jakąś podstawę pod zabawę ale nie mam czasu zajmować się i ogarniać każdego z osobna.

Poleciłby
  • 23
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kryspin013: sam nie znam c++, ale używam vima do pisania aplikacji w c#. Z takich uniwersalnych rzeczy, które mogą przydać się przy różnych językach to polecam: ctags, pluginy: youcompleteme i ultisnips. Jeżeli chodzi o C# to mam o wiele łatwiej bo istnieje open sourcowy projekt OmniSharp.

Jest też możliwość doinstalowania pluginów udających vima w visual studio, studo code itp.
  • Odpowiedz
@Metoksyfenidyna9: Nie, to się robi zupełnie inaczej.
Najpierw z przeładowanej metody QAbstractItemModel::flags zwracasz że dany element jest edytowalny.
QListView gdy przechodzi do edycji (standardowo dwuklik) elementu tworzy nowy Widet do edycji, pobiera z modelu rolę Qt::EditRole, zamiast Qt::DisplayRole, dzięki temu możesz zwrócić same hexy bez prefixu, a po edycji wykona na twoim modelu setData, gdzie możesz podmienić w buforze sobie tylko te bajty dla danej linijki.
  • Odpowiedz
#cpp
Cześć, możecie mi doradzić jakiego kontenera powinienem użyć aby zachować jakąś wydajność?
Mianowicie potrzebuję zrobić tablicę ostatnich, powiedzmy, 100 położeń kursora, jednak będzie ona stale aktualizowana.
Starsze pomiary są przesuwane w tył tablicy aż całkiem z niej spadną. Problemem jest potrzeba zachowania tego w ciągłym obszarze pamięci - za chwile będzie to robiło za wektor w obliczeniach macierzowych.
Teraz rozważałem opcje:
- std::list wydaje się stworzona do tego. Pushfront + popback robi
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MamCieNaHita: boost::circular_buffer faktycznie jest najlepszy, ale nie nie jest ciągły, dokładnie składa się z dwóch ciągłych sektorów.

@kamilspl: Zapomniałeś albo nie doczytałeś dobrze dokumentacji, w której znajduje się jeszcze typ std::deque.
Jeżeli musisz mieć ciągłą przestrzeń na 100 położeń kursora, to jak najbardziej ten typ jest jedynym rozwiązaniem, pomimo że co jakiś czas będzie re alokował pamięć.

Jeżeli jednak mnożenie macierzy jesteś w stanie zrobić na dwie
  • Odpowiedz
#anonimowemirkowyznania
(Jeśli nie lubisz długich historii to przeskocz do ostatniego akapitu)

Studiuje programowanie. Obecnie 3 semestr, nie mam problemów ze zdaniem ale poza obowiązkowymi zajęciami sam z siebie nic nie robię. Chociaż mam czas i wewnętrznie mnie to gryzie że marnuje go na spanie, granie w gry, przeglądanie Mirko czy oglądanie filmów/filmików.

Mój problem z podejmowaniem inicjatyw polega na tym, że jeśli nie wiem na czym stoję to się na to
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach