Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: PyQt4 Stopwatch (met geluid via SDL)  (gelezen 5879 keer)

Offline profoX

  • Lid
    • wesley
    • Lionslink
PyQt4 Stopwatch (met geluid via SDL)
« Gepost op: 2008/03/29, 03:09:43 »
Om iemand te helpen met het leren van PyQt4 heb ik een klein stopwatch-programma geschreven..
Ik kan er zelf eigenlijk niks mee doen, dus ik zet het hier maar neer.. Public domain
Misschien kan iemand er iets van leren, of misschien kan iemand het daadwerkelijk gebruiken..



Het zou moeten werken op Linux, Windows en Mac.
Getest op Ubuntu 8.04.

Features:
* Mogelijkheid tot 10 seconden countdown (incl. geluidje bij effectieve start van stopwatch)
* Standaard stopwatch-functionaliteit
* Directe reset
* Mogelijkheid tot hervatten

Gebruiken:
Benodigde pakketten: libqt4-dev, python-qt4, python-qt4-common, python-pygame
Download: http://85.17.105.113/~wesley/files/stopwatch.tar.gz
Starten: uitpakken, in de map gaan via de terminal, ./stopwatch.py uitvoeren via de terminal
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline eendje

  • Lid
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #1 Gepost op: 2008/03/29, 11:59:13 »
Ah, mooi studiemateriaal :) Ik ben met Python bezig op het moment en ben nog verschillende GUI toolkits aan het uitproberen. Heb je ook wel eens een programma met Qt op een PDA draaiend gehad? Ik ben nu met Tkinter bezig en dat wil, met enige moiete, wel.
Een dag niets geleerd is een dag niet geleefd!
Ik blog dus ik besta!
__________________________________________________________
Een vraag? Heb je al eens gekeken op: http://wiki.ubuntu-nl.org/FAQ?

Offline profoX

  • Lid
    • wesley
    • Lionslink
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #2 Gepost op: 2008/03/29, 18:18:02 »
Citaat van: eendje
Ah, mooi studiemateriaal :) Ik ben met Python bezig op het moment en ben nog verschillende GUI toolkits aan het uitproberen. Heb je ook wel eens een programma met Qt op een PDA draaiend gehad?
Nee, want ik heb zelf geen PDA.
Dit programma zou echter wel met slechts weinig aanpassingen moeten draaien op EmbeddedLinux/Qtopia
en zelfs WinCE PDA's sinds de nieuwste versie van Qt.

Ik zal eens kijken of ik een development kit kan afhalen om het programma te testen op een virtuele PDA.

edit: Ik doe normaal gezien niet negatief over andere toolkits, maar TKinter is echt verschrikkelijk! (vind ik!)
De API is onlogisch en het integreert slecht op élk platform (inclusief Linux, Windows en Mac)
Voor cross-platform ontwikkeling kan je beter naar wxWidgets of Qt kijken.
Als je ook nog voor PDA's wil programmeren zeker naar Qt kijken.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline eendje

  • Lid
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #3 Gepost op: 2008/03/29, 21:00:54 »
Tkinter ziet er niet echt uit, maar het werkt wel :P SOmmige dingen vind ik wel prttig aan Tkinter (Dat packen waardoor de WIdgets netjes neer worden gezet vind ik wel fijn). Aan de andere kant kom ik inderdad wel rare dingentegen. Ik heb een notebook gemaakt met daarop een scrolled canvas. In dat scrolled canvas zitten weer widgets maar ik kan de methoden in het opject op geen enkele wijze benaderen :P Ik heb het nu op een wat andere manier gedaan en dat werkt wel alleen moet ik sommige funties bovenin mijn py-file zetten anders werken ze niet  (vraag me niet waarom...) :D

Ik ben in Python aan het programmeren, dus dan wordt het WxPython i.p.v. WxWidgets. WxPython voor WinCE schijnt op dit moment unmaintained te zijn en, van wat ik er van gelezen heb, te zwaar voor de PDA (gebruikt te veel geheugen). Ik heb het nog niet geprobeerd (staat we op de lijst om te proberen). Qt? Kun je zowel Qt als Qtopia op de PDA gebruiken dan? Is een beetje moeilijk, want dan heb ik een licentie nodig, want ik ben wat aan het (proberen) te programmeren voor mijn werk en ik denk niet dat ze daar een licentie voor gaan aanschaffen. Wat ik nu programmeer is ook meer een proof of concept om te laten zien hoe het ook kan. (Ik programmeer een programma voor de PDA en laat zien dat het ook werkt op de PC).
Een dag niets geleerd is een dag niet geleefd!
Ik blog dus ik besta!
__________________________________________________________
Een vraag? Heb je al eens gekeken op: http://wiki.ubuntu-nl.org/FAQ?

Offline Double12

  • Lid
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #4 Gepost op: 2008/03/29, 21:35:29 »
Grappig programma. Hoeveel tijd kost het jou om zoiets in elkaar te flansen?
Waarom is iedereen trouwens de laatste tijd zo gek van Python? Ik zie bijna geen gecompileerd programma meer. ;)
Het zal wel handig werken, maar een geinterpreteerd programma moet toch ook nadelen hebben lijkt me. Je moet namelijk hele tijd een interpreter draaien die je systeembronnen opeet.

Offline profoX

  • Lid
    • wesley
    • Lionslink
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #5 Gepost op: 2008/03/29, 22:39:12 »
eendje: er is een open source versie van zowel Qt als van Qtopia waarmee je mag maken wat je wil, enige restrictie is dat - als je het programma vrijgeeft - het wel onder een open source licentie (bv. GPL) moet vrijgegeven worden. Qtopia apps zijn in principe Qt apps (eventueel met kleine aanpassingen om het beter op een klein scherm te laten passen) die gecompileerd zijn met de Qtopia compiler.

Packen van widgets kan dan wel handig zijn, maar elke degelijke toolkit kan zoiets.. Qt heeft er bv. een heel layout systeem voor: http://doc.trolltech.com/4.3/layout.html

Python op een PDA is nooit zo goed als een gecompileerd programma omdat een PDA altijd maar beperkte systeembronnen heeft.. maar het is wel mogelijk.. met PyQt4 dus ook. Maar hoe dat precies in zijn werk gaat weet ik niet. Ik heb net Qtopia gecompileerd en heb wat C++-apps getest in een virtuele framebuffer (soort van emulatie), maar ik weet nog niet hoe ik PyQt4 apps moet draaien daarin.

edit: volgens mij moet het dan met zoiets als dit http://www.vanille-media.de/site/index.php/projects/python-for-arm-linux/

Double12: 20 minuten zoiets.. kan sneller voor zo'n klein project, maar ik had moeilijkheden met Python (ik ben eigenlijk vooral een C++-programmeur) en ik moest wat opzoeken om SDL Mixer te integreren voor het geluidje (via pygame heb ik dat nu gedaan)..

Ik verkies meestal C++ over Python, maar in sommige gevallen gaat het ontwikkelen in Python gewoon een stuk sneller.. Maar C++-programma's zijn bijna altijd sneller in uitvoeren en verbruiken minder ram. Voor het programma waar ik aan werk (Mixxx) is het eigenlijk geen keuze meer.. audioverwerking vereist C of C++ omwille van performance redenen. Maar ook voor andere programma's kies ik vaak voor C++... is een gewoonte geworden :) en ik kan er ondertussen vrij goed mee werken
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

PyQt4 Stopwatch (met geluid via SDL)
« Reactie #6 Gepost op: 2008/05/14, 23:20:51 »
Citaat van: profoX
Ik verkies meestal C++ over Python, maar in sommige gevallen gaat het ontwikkelen in Python gewoon een stuk sneller.. Maar C++-programma's zijn bijna altijd sneller in uitvoeren en verbruiken minder ram. Voor het programma waar ik aan werk (Mixxx) is het eigenlijk geen keuze meer.. audioverwerking vereist C of C++ omwille van performance redenen. Maar ook voor andere programma's
Ah, dan kan ik beter ook c++ gebruiken voor mijn app. Die krijgt namelijk een grijs scherm bij het uitvoeren.

Verder leuke app Profox :)

Offline profoX

  • Lid
    • wesley
    • Lionslink
PyQt4 Stopwatch (met geluid via SDL)
« Reactie #7 Gepost op: 2008/05/14, 23:47:39 »
vlerknozem: een "grijs scherm" kan allerlei oorzaken hebben.. lijkt me sterk dat het aan python ligt. Als het gewoon lange tijd grijs blijft, dan kan dit ook allerlei oorzaken hebben die niet per sé aan python liggen. Ik kwam een beetje te sterk over met wat ik zei, want zo traag is python nu ook weer niet ;) C++ is gewoon extreem snel.

Als het om dit probleem gaat: http://forum.ubuntu-nl.org/message/251641#p251641
Dan gok ik dat de main Qt / GUI thread hangt omdat je met een blocking interface dingen gaat uitvoeren.
De beste oplossing is waarschijnlijk die taken uitvoeren met Qt zelf, omdat Qt al die dingen kan zonder te blocken.
Als ik eraan denk zal ik proberen morgen een aanpassing te doen aan dat programmaatje daar.

PS: ik zal dit appje ook eens herschrijven naar PyQt4 zonder SDL, met Phonon ;) (het nieuwe multimediasysteem in Qt 4.4)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)