web-en található fontok használata? (C++ Qt4)

 ( pelz | 2008. március 25., kedd - 2:22 )

Sziasztok!

Szeretnék készíteni egy saját szövegszerkesztő programot, hogy megtanuljam a fejlesztés menetét.
Szeretném, hogy a program bizonyos fontokat használjon, és ha az nem áll rendelkezésre, akkor megkérdezné a felhasználót, hogy akarja-e telepíteni a kérdéses fontokat vagy sem. Ha akarja akkor végrehajtaná a telepítést a szövegszerkesztő az internetről. Ha nem szeretné a felhasználó a telepítést, akkor egyszerűen telepítés nélkül hívná le a fájlokat. De erre a lehívásra mindenképp szükség lenne, ha egyáltalán akar valamit is kezdeni a programmal.

A kérdésem a következők:

1, A házi fejlesztésem C++ nyelven zajlik a TROLLTECH cég Qt4 csomagjának a segítségével. Láttok-e esélyt a megvalósíthatóságra?

2, Ha igen, akkor a kérdés az, hogy web oldalról is le lehet-e tölteni egy fájlt vagy csak fájl szerverről? Ha igen, hogyan? (A fájlszerveres letöltés is érdekelne!)

3, A fontok zip fájlban vannak, tehát letöltés után szükség lenne a fájlok kicsomagolására. Ehhez mit javasoltok?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

1.
QFontDatabase::addApplicationFont körül nézelődj.
A font installálása oprendszer specifikus...

2.
QHttp kell neked. Egyszerű, ha tudod a font pontos url-jét.
Ha ezt úgy kell kinyerned az oldal forrásából, akkor az macerásabb.
(Mi az a "fájlszerveres letöltés"? Ftp? Akkor QFtp.)

3.
Ha csak a font van zip-elve akkor talán elég a qUncompress (QByteArray), ha nem, akkor kell egy lib. Pl 7-zip SDK, bár ez ágyúval verébre...

4.
A kérdéseid alapján elég kezdőnek tűnsz, szerintem a fontok letöltése, és beállítása a legutolsó probléma amivel szembekerülsz egy szövegszerkesztő írása közben... Akkor foglalkozz ezzel, ha a többi már kész van.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Szia tr3w!

Köszönöm a hozzászólásodat!
Eltaláltad, csak egy-két hete foglalkozom a Qt4-vel és kb. 3 hónapja a C++ nyelvvel. És egyébként nagyon tájékozatlan vagyok a Linux világban. Ezidáig leragadtam a DOS-nál és a Turbo Pascal-nál (néha napján Excel makrók). Most szeretnék felzárkózni valamelyest a kor színvonalára.

Eltaláltad az ftp-t is! Ezt értettem a fájlszerver alatt.

És valamiféle magyarázat a sietségemre:
Bár csak nagyon rövid ideje kezdtem a Qt4-et, de néhány példa programot lefordítottam, és köztük volt egy szövegszerkesztő is, ami szépen nézett ki, és mindent tud, amit egy minimál szerkesztőnek tudnia kell. Így a betű típus, méret és szín, bold, italic, aláhúzás, jobbra- balra- középre igazítás, illesztés. Ctrl-C, Ctrl-V, Cut, undo, redo.
Na a lényeg az, hogy beleszerettem és most ezt szeretném egy speciális feladatra továbbfejleszteni. És a speciális feladat speciális karakterkészletet igényel ezért kérdeztem ezeket.

Kösz még egyszer. Ha elakadok, valószínűleg konkrétabb kérdésekkel fogok a közösség felé fordulni. Most csak azt szerettem volna tudni, mégis merre induljak el.

Azt csak halkan jegyzem meg, hogy fileserver ala altalaba Samba-t vagy ilyesmit szoknak kepzelni.

Zip-eket pedig - szegyen, nem szegyen - en bizony a jo oreg unzip paranccsal bontanek ki, mert ez a legegyszerubben hasznalhato cucc, es jo esellyel fenn van a gepen.

Jó de én a szövegszerkesztő programból szeretném végrehajtani a kicsomagolást, nem parancssorból.

http://www.cplusplus.com/reference/clibrary/cstdlib/system.html
Bocs, h kezdő létemre belekotyogok, talán erre gondolt. (csak tipp)

Kösz vamosa!

Amit küldtél link kiváló! Biztos föl lehet használni.
Úgy látszik, van még mit tanulnom.

Ha már Qt:
http://doc.trolltech.com/4.3/qprocess.html

Saját véleményem szerint ezek nem szép megoldások erre a problémára...
(Mi van, ha több file van a zipben? Mi van, ha nem mind font? Mi van, ha több könyvtár van? Először unzip majd törölgetsz? Vagy először listázol, és utána csak azt tömöríted ki ami kell, kapcsolókon keresztül?
És ha rar? Szerintem jobban jársz egy zip/rar/ace libbel, ezek általában tudnak mást is tömöríteni (pl 7-zip sdk). Ha írsz köré egy jó Qt wrappert, ami a filekezelést utánozza, akkor később is tudod majd használni más projectekben...)

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Hi tr3w!

Számomra, most minden újdonság hasznos. Ezért keresek a lehetőségek között.
A te ötleted nyílván sokkal jobbnak látszik. Főleg, ha arra utalok vissza, hogy Qt4-ben szándékozom a problémát megoldani.

Körül tudnád írni részemre, hogy pontosan mi is az a wrapper? Valamiféle ki- becsomagoló kis programrészre gondolsz (dialógus box-val)?

Egyébként ahonnan le akarom tölteni a fontokat, ott minden fájlban egy-egy font van csak, tehát egy egyszerűbb eset áll fenn. Úgy gondoltam, hogy megvizsgálom valahogy, hogy elérhető-e az oldal, és ha igen, akkor néhány, a felhasználó által jóváhagyott, típust letöltök és telepítek a gépére.

Wrapper:
http://en.wikipedia.org/wiki/Wrapper_pattern

Arra gondoltam, hogy lenne egy Archive osztályod, ami konstruktorban kap egy QIODevice-t (így elméletileg nem csak file-t tudna megnyitni, hanem bármit (memóriából, hálózatról, akárhonnan)) már ha ez a 7-zip libbel összeeggyeztethető.

Ennek hasonló tagfv-ei lennének mint a QDir-nek.
(Lekérdezni a könyvtárakat, fileokat, ehhez persze kéne valami QFileInfo szerű osztály (ArchiveFileInfo?))
Sajnos a QDir nem úgy lett tervezve, hogy ezt szépen meg lehessen csinálni, úgyhogy ezen gondolkozni kéne, hogy érdemes-e így.

Ami ennél fontosabb, hogy ha kiválasztottunk egy file-t és ki akarjuk tömöríteni, akkor egy QIODevice leszármazottat kapjunk vissza (ArchiveFile?). Ez pedig azért jó, mert így az ArchiveFile-t át tudjuk adni bármely Qt-s fv-nek ami QIODevice-t használ, úgy hogy az nem tudja, hogy ez egy tömörített állomány, viszont csak akkor, és annyit tömörít ki, amennyire szüksége van.
Ez persze a programozónak is könnyebség, nem kell más kódot írnia, ha tömörített vagy kicsomagolt file-okkal dolgozik.

Valami hasonlóra gondolok mint KDE-ben a KArchive, KArchiveDirectory, KArchiveFile.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Hát ez a Qt ki van ám találva! Sok lehetőséget biztosít.

Úgy látom, nem fogok unatkozni a közeljövőben.

Annyit még segítenél, hogy honnan tölthetném le a 7-zip fejlesztő részeit, és a forrást, ha egyáltalán rendelkezésre áll ilyesmi valahol. Szabad szoftver ez a 7-zip?

http://www.7-zip.org/sdk.html

Többek között LGPL, tehát szabadon használhatod.
Soha életemben nem használtam, lehet, hogy van egyszerűbb, jobban használható zip lib is. Ez volt az első ami eszembe jutott.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Még egyszer kösz!

Elakadás esetén újra jelentkezem.