Vraag & Antwoord

OS Linux

Programmeren: KDE of GTK2 (met of zonder GNOME2)

9 antwoorden
  • Hoi allemaal, ik ben van plan een vrij ambitieus project te beginnen: een muzieknotatie editor gebaseerd op de MEI DTD (Music Encoding Initiative) of een eigen XML DTD. Anders dan note-edit of denemo gebruik ik niet mup of lilypond als backend. De bedoeling is dat het programma zelf de (postscript) output zal renderen. Het moet een gebruiksvriendelijk programma worden, maar geen MIDI-editor. Het gaat puur om hoogwaardige partituren printen. Natuurlijk wordt het vrije software, en leen ik vast wel ideeën van lilypond. Er is nog geen regel code, maar ik ben aan het plannen. Ik kan C, PHP en Ruby (de laatste beide beheers ik ook in OO zin) en heb een beetje ervaring met GTK2. MAAR: Het hele plan vereist toch een tamelijk OO aanpak (met subclassing, overerving etc) en daarom loop ik nu te twijfelen tussen:[list=1:74b5137fda][*:74b5137fda]Zal ik C++ gaan leren of me verdiepen in het GLIB2 object model (wat ook erg cool is) [*:74b5137fda]Zal ik voor Qt/KDE of GLIB/Pango/GTK2/ (evt. libart_lgpl) schrijven?[/list:o:74b5137fda] Ik was altijd iets meer GTK dan QT/KDE minded, maar ik vind de snelheid en de power waarmee KDE en alles eromheen zich ontwikkelt wel dermate verbazend, en het hele KDE framework dermate compleet dat ik mij afvraag of ik daar niet beter mee in zee kan gaan. Ik hoop dat hier mensen rondlopen die hier iets zinnigs over kunnen zeggen!
  • Ga ik even voor je navragen Max
  • Ik heb enkele links ontvangen van developers die aanvankelijk gtk gebruikten, maar nu qt gebruiken. Deze sites geven uitleg over waarom ze uiteindelijk zijn overgestapt. Dit zijn enkele links naar artikelen van guillamme, de voormalig onderhouder van GTK--, een C++-binding voor GTK. Hij gebruikte dit voorheen voor zijn muziekprogramma "Rosegarden", maar is onlangs overgestapt op QT. Deze links zijn voor jou erg bruikbaar denk ik, omdat het om een vergelijkbaar project gaat als het project dat je wilt opstarten. http://www.telegraph-road.org/writings/why.html http://www.telegraph-road.org/writings/gtkmm_vs_qt.html http://www.all-day-breakfast.com/rosegarden/index.html Dit is een link naar de site van de ontwerper van Klotski, een eenvoudig spelletje. De site geeft voorbeelden van de applicatie, geschreven in C, C++ en Python. http://phil.freehackers.org/kde/cmp-toolkits.html Doe er je voordeel mee :) Max
  • Hoi maximilaan, geweldig bedankt voor je research!!! Ik zit nog heel zwaar te dubben :( ik ben een grote fan van Ruby, de (nog) wat minder bekende oo scripting taal die Japan al stormenderhand heeft veroverd (populairder dan Python). Ruby heeft een leuk object systeem in C dat heel goed past bij GLib2 en GTK2. Schrijven in C met GTK en Rubyscripts gebruiken waar het kan is dus een mooi idee. Aan de andere kant kan ik ook de moeite nemen om C++ te gaan leren en dan is Qt volgens deze verhalen de beste optie. Ik wil de core en rendering van mijn prog in C of C++ hebben, voor de snelheid, en denk aan libxml2 voor het manipuleren van de data (in de vorm van een XML tree in het geheugen). (Qt heeft echter ook XML classes) Het aardige van KDE is verder dat het heel duidelijk is of een applicatie een KDE applicatie is. Bij GNOME applicaties kun je altijd precies aangeven welke libs je wilt gebruiken, dat maakt je programma geschikter voor mensen die oudere systemen gebruiken. Bij een KDE applicatie is het verplicht dat Qt, kdelibs en kdebase aanwezig zijn, en dat is natuurlijk heel wat groter. Maar het KDE framework is dan ook wel heel luxe, en een muziek-widget als KPart is natuurlijk heel erg cool, lekker nootjes lezen in Konqueror vanaf een website. Ik heb inderdaad al wat studie gemaakt van Rosegarden, maar dat is meer een MIDI editor dan een echt partituur programma. Ook gebruiken zij pixmaps voor de symbolen, ik wilde eigenlijk een speciaal font gebruiken. Maar ik dub nog zwaar hoor: Pango, GTK2 en libart_lgpl zijn ook erg fraai! En voor de rendering van output wil ik toch "gewoon" PostScript gaan genereren. Nog 1 vraagje heb ik: Wie weet er een modern boek (bijv. KDE3) over Qt en KDE-programmering?
  • Persoonlijk programmeer ik liever voor GTK+ (vooral GTK+ 2.0 is steengoed!). Maar ik hoor van iedereen dat QT zoveel efficienter is ofzo. Volgens mij maakt het niet veel uit, als je maar genoeg plezier en motivatie hebt. En er is volgens mij ook Ruby bindings voor GTK+.
  • Ja GTK2 is prachtig, en Pango is ook heel erg fraai. Ik denk dat GTK2 en Qt3 elkaar niet veel ontlopen qua efficientie, maar dat op specifieke gebieden er wel grote verschillen zijn. Zo schijnt Daniel Veillards libxml2 en libxslt veel sneller te zijn dan Qt3's XML classes. Maar je kan libxml2 natuurlijk ook gewoon vanuit KDE programma's gebruiken. En natuurlijk zullen GTK2 en Qt3 zeer waarschijnlijk allebei zeer belangrijk voor de toekomstige Linux desktops zijn, en zal ieder Linux desktopje beide wel beschikbaar hebben. Ik heb nog niet erg veel programmeer ervaring (behalve dat ik Z80 assembly (en zelfs de Z80 hex-codes) goed beheers), maar de laatste tijd ben ik helemaal weg van oo programmering. Wat in PHP en Ruby erg goed kan. Daardoor vind ik C voor GTK(2) er soms wat onwennig uitzien, met al die casts en al die string parameters (methods). ik hou dan wel van de echte OO notatie zoals C++, Ruby, PHP enz die gebruiken. Bij muzieknotatie heb je allerlei verschillende symbolen en items (zoals noten, rusten) die bepaalde eigenschappen met elkaar gemeen hebben maar andere niet. Zo heb je bij het genereren van output (renderen van een edit venster of PostScript output) ook bepaalde dingen die hetzelfde zijn (zoals berekenen van bepaalde lengtes etc.) en die anders zijn (paginagrenzen, weergeven etc.) dus een OO taal is wel erg geschikt om dat handig te programmeren. Maar ik snap nog geen bal van STL en iterators enz enz. Maar goed, er ligt een dik C++ boek op de wc :)
  • Volgens mij hoeft kdebase niet te zijn geinstalleerd als je een kde-applicatie wilt schrijven. Evtn moet kdemultimedia wel zijn geinstalleerd, mits je gebruik wilt maken van de gedeelde bibliotheken uit dat pakket Verder kun je natuurlijk een puur qt-applicatie schrijven, scheelt je de dependencies die een kde-app met zich meebrengt Max
  • Ik denk dat het toch wel een KDE app gaat worden, met eventueel de mogelijkheid om QT-only te compileren. Maar ik wil graag krachtige integratie met KDE, een KPart maken etc. Ik heb laatst perongeluk als root mijn totale /usr/share/doc gewist :D dus wacht ik nog even op LFS 4.0 dan bouw ik een nieuw systeempje met heel QT en KDE er weer op en ga ik es ff lekker de KDE en QT docs lezen. De QT docs zijn heel erg compleet en de KDE docs zal ik ook wel gaan doorzoeken. Je zou zelfs alle GUI afhankelijkheid kunnen abstraheren/maskeren, zodat je app zowel voor GTK2 als KDE kan worden gecompileerd. Maar dit lijkt me behoorlijk lastig want als je QT gaat gebruiken gebruik je het ook voor de non-GUI classes zoals QString etc, en als je voor GTK2 gaat ga je ook GLib en GObject enzo allemaal gebruiken. Ik zit nu in KDE3 en het is toch echt heel erg mooi. Gewoon een goed uiterlijk en werkelijk alles werkt out-of-de box zonder ook maar iets te hoeven configgen. En dat op LFS! :)
  • Hoi, Ik ben de laatste tijd ook bezig met programmeren voor KDE. met KDEVELOP gaat het best lekker. Ik ben het nog aan het leren (ik ben nu bezig aan een texteditor ;) ) het is vooralsnog goed te doen. Barry

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.