Wybór biblioteki graficznej do komercyjnego projektu.

Wybór biblioteki graficznej do komercyjnego projektu.
TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0

Zabieram się właśnie za interfejs graficzny do programu. Problem w tym, że nie wiem za bardzo, której biblioteki mogę użyć, aby jej bezpłatna licencja zgadzała się z moimi wymaganiami. Przeglądałem licencje bibliotek, o których zaraz wspomnę oraz opinie na ich temat pod kątem komercyjnego projektu, napiszę je i proszę o ich ewentualne zdementowanie lub potwierdzenie.

Projekt jest komercyjny o zamkniętym kodzie źródłowym napisanym w C++ z wykorzystaniem biblioteki CURL. W programie korzystam z wielu wątków, więc oczekuję od biblioteki aby była bezpieczna pod tym względem. Co do interfejsu to dążę do tego co widać na załączonym obrazku :)

Opinie:

  1. QT oraz wxWidgets nie mogę użyć, ponieważ musiałbym dostarczać kod źródłowy aplikacji.
  2. Z biblioteką GTK oraz GTKmm jest problem tego typu iż muszę dynamicznie linkować ją z aplikacją.

W przypadku gdy te dwie opinie są prawdziwe proszę o 'polecenie' jakiejś innej, może nawet niszowej biblioteki graficznej, która wymaga podobnego lub mniejszego nakładu pracy przy tworzeniu interfejsu co w/w biblioteki.

  • bee.GIF (103 KB) - ściągnięć: 257
edytowany 1x, ostatnio: t0m_k
deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:około 12 lat
0
t0m_k napisał(a)
  1. QT oraz wxWidgets nie mogę użyć, ponieważ musiałbym dostarczać kod źródłowy aplikacji.

Bezedura, Qt jest licencjonowane na GPL, LGPL i licencji komercyjnej. Uznając LGPL możesz spokojnie linkować do Qt i nie musisz niczego dostarczać.


I nie udawaj, że rozumiesz.
TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0
deus napisał(a)

Uznając LGPL możesz spokojnie linkować do Qt i nie musisz niczego dostarczać.

Statycznie, czy dynamicznie, bo GTK i GTKmm też są na LGPL, a podobno tylko dynamicznie mogę je linkować ?

deus
  • Rejestracja:prawie 21 lat
  • Ostatnio:około 12 lat
0

"Statycznie" oznacza zbudowanie jednej binarki z kodu Twojego i Qt. Jak wlinkujesz to musisz dać kod, jak tylko dllki latają to problemu nie ma.


I nie udawaj, że rozumiesz.
TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0

Dzięki za odpowiedź.

edit:
Wykorzystam jeszcze ten temat i dla pewności zapytam. Tak łączę dynamicznie ?

Kopiuj
gcc -lbiblioteka kod.c

Nigdy w to nie wnikałem jakoś, ale z tego co jest napisane w manualu gcc, choć nie wprost, wychodzi na to, że dynamicznie, bo tylko z tych lib'ek bierze symbole i uzupełnia importy, tak ?

Sprawdziłem i łączy rzeczywiście dynamicznie, byłem wcześniej pewny, że w ten sposób łączy statycznie. Ehh, niepotrzebnie Wam głowę zawracałem, a właściwie @deusowi :D

edytowany 2x, ostatnio: t0m_k
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 13 godzin
0

Statycznie, czy dynamicznie
Do komercyjnego programu – dynamicznie. Należy jednak zwrócić uwagę, że jest to tylko interpretacja licencji LGPL, nie napisano w niej tego wprost.

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:13 dni
0

A od kiedy program na otwartej licencji nie może być programem komercyjnym?


TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0
winerfresh napisał(a)

A od kiedy program na otwartej licencji nie może być programem komercyjnym?

Nie wiem od kiedy, nic takiego też tu nie padło ;p Po prostu po przeczytaniu kilku wypowiedzi na różnych forach nabrałem wątpliwości co do możliwości zamknięcia kodu programu korzystającego z biblioteki dostępnej na LGPL. Pomieszały mi się także sposoby linkowania co pogłębiło moją niepewność i tak powstał ten temat.

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:13 dni
0

Na LGPL możesz zamknąć kod programu o ile dasz możliwość podmiany plików biblioteki (czyli będą linkowane dynamicznie). Ale projekt komercyjny również może mieć dostępny publicznie kod źródłowy, nic nie stoi na przeszkodzie.


TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0

Ja najchętniej bym udostępnił kod, ale nie ja o tym tu decyduje, dlatego interesowało mnie wykorzystanie biblioteki na danej licencji w zamkniętym kodzie.

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:13 dni
0

Ja jestem fanbojem GTK(+/mm) więc moja propozycja jest jasna i prosta, ale to zależy od tego jak wiele oczekujesz od biblioteki do GUI.


TK
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 14 lat
0
winerfresh napisał(a)

Ja jestem fanbojem GTK(+/mm) więc moja propozycja jest jasna i prosta, ale to zależy od tego jak wiele oczekujesz od biblioteki do GUI.

Korzystałem jakiś czas z pyGTK, więc najlepiej znam właśnie GTK z tych bibliotek, które wymieniłem, ale wybrałem QT, ponieważ wydaję mi się, że w niej najłatwiej będzie mi dostosować wygląd interfejsu do potrzeb klienta.

hauleth
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:13 dni
0

Dodatkowo polecam stosowanie ikon Tango.


TK
dzięki, ale na szczęście grafik się tym już zajął :)
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 13 godzin
0
t0m_k napisał(a)

Tak łączę dynamicznie ?

Kopiuj
gcc -lbiblioteka kod.c

nie wiadomo. to zależy od tego, czy biblioteka jest statyczną czy dynamiczną.

Na LGPL możesz zamknąć kod programu o ile dasz możliwość podmiany plików biblioteki (
co jest idiotycznym wymogiem, bo podmiana biblioteki na jakąkolwiek inną wersję ma znacznie większą szansę niedziałania niż działania.

edytowany 1x, ostatnio: Azarien
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)