Aplikacja Qt C++ - pomoc teoretyczna

Odpowiedz Nowy wątek
2019-02-02 10:59
0

Witam, przejdę od razu do problemu. Mam 15lat, nauczycielke od informatyki umiejącą ledwo podstawy worda i powerpointa, uczę się programowania od ponad roku, obecnie chcę już na poważnie ogarnąć, ugruntować swoją wiedzę i mieć solidny wpis do portfolio - piszę aplikację o zarządzaniu domowymi zapasami, ogólnie preperring.

Przygotowany mam cały projekt, rozpisane w czystym konsolowym c++ wszystko mniej więcej, i chcę teraz zacząć przenosić ją na prawdziwą okienkową aplikację w Qt. Nie wiem zbytnio jak się za to zabrać, no o ile z przeniesieniem funkcji i tego wszystkiego do Qt to może jeszcze jakoś pójdzie, to za to nie mam bladego pojęcia co do:

  • baz danych, przechowywania produktów w bazie danych

  • łączenia się z internetem, satelitą, serwerami aplikacji,

  • wypuszczeniem (wydaniem) skończonej aplikacji i przeniesienie jej na androida i linuxa

Jest jakaś dobra duszyczka która by mi pomogła teoretycznie z tymi zagadnieniami? Jak to wszystko funkcjonuje i wgl jak powstają i działają duże aplikacje. Pozdrawiam

edytowany 1x, ostatnio: aurel, 2019-02-14 15:01

Pozostało 580 znaków

2019-02-02 12:31
1

Chcesz za dużo na raz.
Zdecyduj się na jeden konkrety problem a potem przy nim podłub, poggoglaj itp.

Radziłbym jednak zacząć od zapoznania się z debuggerem (powinno się tego uczyć na samym początku już przy samym "hello world").
http://doc.qt.io/qtcreator/creator-debugging.html
filmik.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2019-02-02 13:31
0

Pozostało 580 znaków

2019-02-02 18:26
1

baz danych, przechowywania produktów w bazie danych

Na początek SQLite / LiteSQL (http://doc.qt.io/qt-5/sql-driver.html).

łączenia się z internetem, satelitą, serwerami aplikacji - to jest znacznie bardziej skomplikowany temat.

Na początek może naucz się co to REST API, jak napisać backend (i jaką technologię i język wybrać? PHP, Node.JS, Java, Ruby, Python, ...), który wystawi usługę oraz jak wykonać request HTTP w Qt.

wypuszczeniem (wydaniem) skończonej aplikacji i przeniesienie jej na androida i linuxa.

O ile z Linuxem raczej większych problemów nie będzie (bo Qt wspiera Linuxa), o tyle Android to już cięższa sprawa, bo mimo że Qt wspiera Androida to buildowanie i ogólnie wszystko jest już trudne. http://doc.qt.io/qt-5/android.html


Asm/C/C++
edytowany 1x, ostatnio: mwl4, 2019-02-02 18:27
Czyli backend nie moge napisać również w c++? - Xezolpl 2019-02-02 19:39
@Xezolpl: W sumie możesz, ale C++ raczej nie jest polecany do pisania usług serwerowych ze względu na duże prawdopodobieństwo posiadania niechcianej podatności na atak. Jednak jeśli się bardzo upierasz, to możesz użyć nginx z FastCGI: http://chriswu.me/blog/writin[...]rld-in-fcgi-with-c-plus-plus/ - mwl4 2019-02-03 04:58
Atak wektorowy? Jesteś pewien, że wiesz o czym piszesz? - enedil 2019-02-03 12:56
@enedil: https://en.wikipedia.org/wiki/Vector_(malware) Poprzez np. wysyłanie spreparowanych pakietów można doprowadzić do buffer overflow a tym samym do wycieku danych z serwera, kodu, lub nawet wykonania spreparowanego kodu na serwerze, itp. - mwl4 2019-02-03 13:06
Każdy atak jest przez jakiś wektor. Wektor ataku, to jest konkretny komponent, który prowadzi do podatności. Pisanie o "ataku wektorowym" to oznajmianie, że nie rozumie się pojęć. - enedil 2019-02-03 14:31
@enedil: Ok, fakt, zmieniłem komentarz. Mój współpracownik kiedyś używał tego pojęcia i teraz wydaje mi się, że też używał tego w złym znaczeniu - bardziej jako buffer overflow. - mwl4 2019-02-03 14:41

Pozostało 580 znaków

2019-02-03 12:27

baz danych, przechowywania produktów w bazie danych
łączenia się z internetem, satelitą, serwerami aplikacji,
wypuszczeniem (wydaniem) skończonej aplikacji i przeniesienie jej na androida i linuxa

Zastanówmy się. Co to ma w ogóle robić? Moja propozycja:

  • Fronte-end nie appka w qt a po prostu html/js/wordpress , czy to wystarczy?
  • Front end wyświetla dane z bazy
  • Backend operuje na bazie danych i ewentualnie robi jakieś dodatkowe usługi(backend może być nawet czysto konsolowy)

Może jak chcesz pouczyć się qt rozwarz wejście do jakiegoś projektu z qt na github. Na początek zrobisz proste rzeczy, ktoś ci może nawet review zrobi itd. Apki z projektu kde na pewno kogoś szukają.


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
Pokaż pozostałe 8 komentarzy
niekoniecznie, wg mojego zamysłu nie będzie potrzebowała oprócz własnie do map itp. - Xezolpl 2019-02-04 11:23
Cześć, mogę spytać o co chodzi z tym kde? Znaczy w sensie jak znaleźć jakiś projekt na githubie z qt gdzie moglbym się coś douczyc - Xezolpl 2019-02-06 14:27
KDE to projekt środowiska linuksowego napisany w qt, jest też inne środowisko jak lxqt. https://community.kde.org/Get_Involved https://github.com/lxqt/lxqt/blob/master/CONTRIBUTING.md - revcorey 2019-02-06 16:08
Ale jak to jest już napisane to co ja miałbym tam zrobić? Z resztą trzy dni się męczę nad tą aplikacją i mnie już jasny szlag trafia, nic nie idzie tak jak miało być w zamyśle nawet (wulgaryzm) (wulgaryzm) kwadratu się nie da zrobić żeby po rozciągnięciu aplikacji nadal pozostawał kwadratem............ - Xezolpl 2019-02-06 16:49
a co jest napisane? Przecież te projekty ciągle się rozwijają i wydają nowe wersje. Bierzesz prosty task i męczysz. Nie martw się nikt miszczem klawiatury się nie urodził ;) trza ćwiczyć. - revcorey 2019-02-06 16:51

Pozostało 580 znaków

2019-02-03 13:17
1

w qt obsługa baz danych jest prostsza niż w javie, nie trzeba pobierać żadnych frameworków, pisać konfiguracji hibernate itp

void MainWindow::on_loginButton_clicked()
{
  db.setUserName(ui->loginEdit->text());
  db.setPassword(ui->passEdit->text());
  if( !db.open() )
  {
      QString stringError = db.lastError().text();
      ui->loggedStatus->setText(errorMsg + ": " + stringError);
  } else {
      qDebug( "Connected!" );
      ui->loggedStatus->setText("");
      ui->stackedWidget->setCurrentIndex(1);
      query = new QSqlQuery(db);
      executeQuery("SELECT * from studenci");
      model->setQuery(*query);
      ui->tableView->setModel(model);
      choice = 0;
  }
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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