Jakie GUI ?

mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

Witam. Poznałem już strukturę C++ i teraz chcę pisać aplikacje okienkowe, lecz nie wiem jakie GUI wybrać. Dodam że nie miałem jeszcze z tym styczności (do tej pory pisałem aplikacje konsolowe). Chciałbym abyście mi doradzili które z GUI jest najlepsze.

piternet
  • Rejestracja:prawie 15 lat
  • Ostatnio:prawie 6 lat
  • Postów:162
0
mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

Czytałem ten temat, lecz zawiele nie jest tam napisane. Chciałbym uczyćsię GUI ktore jest w chwili najpopularniejsze...

BL
  • Rejestracja:ponad 16 lat
  • Ostatnio:4 miesiące
0

Qt jest chyba teraz na fali


Zapraszam osoby początkujące na indywidualne szkolenia z programowania w JAVA. Dla najlepszych, po zakończonym kursie, praca ze stawką początkową 10-12tyś netto. Kurs trwa od 6 do 24 miesięcy, 1-2h w tygodniu, 150PLN/h. szkolenia kropka java malpaa gmail kropka com
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 godzin
0

nie ma najlepszego, są lepsze i gorsze, są przenośne i są związane z konkretnym kompilatorem a nawet systemem operacyjnym.

YA
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:36
0

Wiele osób najchętniej poleciłoby to co używają lub znają najlepiej. Ja zachęcam do nie-pisania windows_only i użycia czegoś przenośnego np. wymienione wcześniej qt, którego sam trochę używam, i do którego są nawet specjalnie przeznaczone IDE (również wielo-platformowe).

mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

Dużo osób na różnych forach jest za qt, więc chyba to będzie najlepszy wybór.

0
mto9 napisał(a)

Dużo osób na różnych forach jest za qt, więc chyba to będzie najlepszy wybór.

oczywiście będzie to dobry wybór jednak powinieneś się liczyć z tym, że Qt wymaga od programisty dobrej umiejętności programowania obiektowego. Pytanie czy poznałeś, jak to nazwałeś "strukturę c++" na tyle dobrze aby zacząć programować we framework'u, który poza samą swoją obiektową budową rozszerza również możliwości języka o niestandardowe konstrukcje.

Siuda
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 13 lat
  • Postów:7
0

Trochę tego jest do wyboru...
Jeśli jesteś pewien że chcesz pisać na Windowsa to polecam .NET i od razu język C# (na moje wygodniejsze)
na Linuxach najczęściej pisze się w Qt i Gtk (przy czym w Gtk modny staje się Python [dynamiczne typowanie, automatyczne zarządzanie pamięcią])

Dobrym narzędziem jest też Java, biblioteki Swing i SWT
Pamiętajmy, że Java, Qt i raczej Gtk są multiplatformowe, co ciężko powiedzieć o .NET

Są też inne rozwiązania (wcześniej wspomniane)
FLTK, WxWidgets
Słyszałem, że WxWidgets staję coraz bardziej popularny, ale nie sądzę, żeby na początek pisało się tam wygodnie
FLTK sam nie wiem

Jeśli jesteś pewien, że koniecznie chcesz pisać w C++ -> Qt jest dobrym pomysłem, mi pisało się wygodnie... jest o tym kilka dobrych materiałów w sieci, dasz sobie radę

Sam muszę się bliżej przyjżeć wspomnianym bibliotekom, to co wypisałem trochę bazuje na tym co "słyszałem" (w sumie to bardziej czytałem)


Brotherhood & Fun!
mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

A czy to prawda że ucząc się Qt uczę się nowego języka?

BL
  • Rejestracja:ponad 16 lat
  • Ostatnio:4 miesiące
0

Hmm ... języka raczej nie, bo składna jest taka sama jak w C czy C++. To jest raczej po prostu poznawanie biblioteki tak jak każdej innej. w Qt sprawa jest znacznie ułatwiona, bo jest do tego znakomita dokumentacja.


Zapraszam osoby początkujące na indywidualne szkolenia z programowania w JAVA. Dla najlepszych, po zakończonym kursie, praca ze stawką początkową 10-12tyś netto. Kurs trwa od 6 do 24 miesięcy, 1-2h w tygodniu, 150PLN/h. szkolenia kropka java malpaa gmail kropka com
edytowany 1x, ostatnio: Blood
several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 3 godziny
0
mto9 napisał(a)

A czy to prawda że ucząc się Qt uczę się nowego języka?

Zauważyłem że takie opinie roznoszą ludzie którzy nie poznali zbyt wiele technologii, dla nich rzeczywiście nauka Qt to jakby nauka innego dialektu. By dobrze operować Qt trzeba dobrze znać C++ w ujęciu obiektowym (dobrze czyli praktycznie a nie "akademicko" czy książkowo), nawet na stronach dokumentacji trolltechu jest to podkreślone. Qt to landara, która oferuje dużo więcej niż tworzenie interfejsu, przez swój dość specyficzny mechanizm sygnałów i slotów nie każdemu pasuje. Ja Qt traktuję jak swego rodzaju framework dla C++.

mto9 napisał(a)

Witam. Poznałem już strukturę C++

Dość często ludzie piszą tu takie rzeczy, jakie projekty masz na swoim koncie? Jeżeli nie napisałeś jeszcze niczego co mogłoby się komuś do czegoś przydać to ja radziłbym Ci poznać coś "lżejszego" niż Qt.


edytowany 1x, ostatnio: several
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 godzin
0

A czy to prawda że ucząc się Qt uczę się nowego języka?

ponieważ Qt zawiera rozszerzenia składni (sygnały-sloty) których nie da się uzyskać żadnymi makrami w standardowym C++, formalnie jest to „nowy język”. Ale ta sama sytuacja jest w C++ Builderze i jego VCL, a już do potęgi n-tej w Microsoftowym C++/CLI.

Do tego Qt używa własnych klas do wszystkiego co się da, więc jeśli ktoś się uczył biblioteki standardowej C++, to musi się uczyć wszystkich klas na nowo.

several
Hmmm...QInt czy QFloat nie ma :P Przynajmniej w 4.6.0 którą posiadam.
LO
  • Rejestracja:ponad 19 lat
  • Ostatnio:około 4 lata
0

A może wxWidgets ?? Jest lżejsze, można kompilować statycznie (jeden plik exe), dostęp do WinAPI jest bez problemów, dodatkowo swobodniejsza licencja. No i kontrolki interfejsu użytkownika są generowane natywnie (nie emulowane jak w przypadku QT). Jakaś alternatywa to jest. Fakt, że nie jest popularny jak QT, ale może warto spróbować?

Przykład programiku otwierającego pliki multimedialne (wxButton1 - to otworz klip/mp3/jpeg/) i dokumenty HTML z dysku (wxButton2)

Kopiuj
/*
 * WxButton1Click
 * Otworz plik... przycisk
 */
void Project1Frm::WxButton1Click(wxCommandEvent& event)
{
	// otwieramy media playera
WxMediaCtrl1->ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_DEFAULT);

if (WxOpenFileDialog1->ShowModal() == wxID_OK) 
	{
     // jesli uzytkownik zatwierdzil wybor pliku

        if	(WxMediaCtrl1->Load(WxOpenFileDialog1->GetPath()) == false) // jesli problem z pobraniem sciezki
        {
            wxMessageBox( wxT("Bład!."), wxT("Bład"), wxICON_ERROR); // pokaz komunikat o bledzie
        }
        else // jesli OK
        {
            WxMediaCtrl1->Play(); // otwieramy :)   
        }
}


}

/*
 * WxButton2Click
 */
void Project1Frm::WxButton2Click(wxCommandEvent& event)
{
	// insert your code here
if (WxOpenFileDialog2->ShowModal() == wxID_OK) 
	{
        WxHtmlWindow1->LoadPage(WxOpenFileDialog2->GetPath());  //wczytanie pliku HTML do kontrolki :)
    }


}
 
edytowany 1x, ostatnio: LOSMARCELOS
06
Ten "przykład programiku" coś niekompletny ;)
mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

Przyznam się że jeśli chodzi o oprogramowanie obiektowe w praktyce nie miałem wiele do czynienia, ale to nie z braku chęci. Najpierw poczytam dokładnie o programowaniu obiektowym, napiszę coś i biorę się za Qt ;.

mto9
  • Rejestracja:około 14 lat
  • Ostatnio:około 10 lat
  • Postów:380
0

Sorki że post pod postem ale czytałem na necie o Qt i nie wiem czy dobrze zrozumiałem ;D według mnie Qt zawiera taka sama skladnie jak C++ (classy, funkcje, enum, dziedziczenie itd), ale używa własnych bibliotek? Aha i mogłby mi ktoś wytłumaczyć na czym polega ten mechanizm sygnałów i slotów.

several
Weź lepiej się zabierz najpierw za coś bardziej intuicyjnego :)
0
mto9 napisał(a)

Sorki że post pod postem ale czytałem na necie o Qt i nie wiem czy dobrze zrozumiałem ;D według mnie Qt zawiera taka sama skladnie jak C++ (classy, funkcje, enum, dziedziczenie itd), ale używa własnych bibliotek? Aha i mogłby mi ktoś wytłumaczyć na czym polega ten mechanizm sygnałów i slotów.

będziesz teraz prosił o wykład na temat mechanizmów w Qt? Książka lub dokumentacja do ręki i zacznij czytać. Na stronie Qt jest do pobrania darmowy ebook do Qt 4.xx (nie pamiętam dokładnie, której wersji), na początek ci wystarczy. Poza tym dokumentacja Qt jest dość fajnie opracowana oraz przykłady do niej (już troszkę gorzej, gdyż skupiają się raczej na zaprezentowaniu jego możliwości jednak z nich również wiele można wynieść). klik - odpowiedź na twoje pytanie.

0

i nie do końca zawiera taką samą składnie, bo np. w czystym c++ nie masz specyfikatorów dostępu typu public/protected/private slots, albo specyfikator signals.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 godzin
0

Właśnie te sygnały i sloty sprawiają, że nie jest to tylko "C++ z biblioteką", bo nie da się ich w taki sposób zrobić żadną biblioteką. Program w Qt jest przed właściwą kompilacją przepuszczany przez specjalny preprocesor MOC, który tłumaczy go na standardowy C++, a dopiero potem poddawany kompilacji kompilatorem C++.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)