Empfehlung für GUI

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Empfehlung für GUI

Beitragvon murph » Dienstag 6. Juni 2006, 21:36

hi!
ich suche zur Zeit eine GUI, die einfach zu Prgrammieren ist.
sie brauch keine großen extras, nur selectboxen jeder art und die standartausgabe.
habe mir tkinter angekuckt und verzeifele. oder ist das normal?
habe, wie so wenige andere, keine lust, die hauptzeit für die gui zu verwenden...
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Beitragvon DatenMetzgerX » Dienstag 6. Juni 2006, 22:01

Ich benutze wxPython und bis jetzt ist der Aufwand recht gering (vorallem wenn es bei chkBoxes etc. bleibt)

Gruess
DM
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Empfehlung für GUI

Beitragvon gerold » Dienstag 6. Juni 2006, 22:17

murph hat geschrieben:ich suche zur Zeit eine GUI, die einfach zu Prgrammieren ist.

Hi murph!

Du kannst es so wie ich machen. Zuerst mal Tkinter ausprobieren und verzweifeln, dann noch das Tutorial zu pyGTK rein ziehen und diesmal ein wenig später verzweifeln, und dann das Buch "wxPython in Action" lesen und hoffen, dass du nicht verzweifelst.

Also bis jetzt bin ich noch nicht an die Grenzen von wxPython gestoßen. Seit der Umstellung auf den NEUEN Stil (import wx statt from wx import *), muss ich sagen, dass mir wxPython ziemlich gut gefällt. Alles schön in Klassen einteilen und mit Events zurch die Gegend ballern. Das habe ich schon mit Visual Basic gerne gemacht. ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 6. Juni 2006, 22:56

Installier dir einfach mal wxPython http://wxpython.org/download.php (oder aptitude search wxpython) und probier dieses Beispiel aus. Vielleicht ist wxPython ja etwas für dich.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wx


class MyFrame(wx.Frame):

    def __init__(self, parent = None, id = -1, title = "Hallo Welt"):
       
        # Initialisieren
        wx.Frame.__init__(self, parent = parent, id = id, title = title)
       
        # Panel auf dem alle Steuerelemente gelegt werden
        panel = wx.Panel(self)
       
        # Box als Abstandhalter. Dadurch wird auch alles untereinander angezeigt.
        vbox = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox)
       
        # Box mit Radiobuttons
        self.choices = (
            u"ich bin glücklich :-) ",
            u"ich bin irgendetwas :-| ",
            u"ich bin traurig :-( ",
        )
        self.rb_auswahl = wx.RadioBox(
            parent = panel, id = -1, label = u"wähle aus",
            choices = self.choices, style = wx.VERTICAL
        )
        vbox.Add(
            self.rb_auswahl, proportion = 0,
            flag = wx.ALL | wx.EXPAND, border = 5
        )
       
        # OK-Button
        btn_ok = wx.Button(parent = panel, id = wx.ID_OK, label = "&OK")
        vbox.Add(btn_ok, proportion = 1, flag = wx.ALL | wx.EXPAND, border = 5)
        btn_ok.Bind(wx.EVT_BUTTON, self.on_ok)
       
        # Größe des Frames anpassen und Minimalgröße festlegen
        panel.Fit()
        self.SetClientSize(panel.GetSize())
        self.SetSizeHintsSz(self.GetSize())
       
        # Zentrieren
        self.Center()
   

    def on_ok(self, event):
        """
        Wird ausgelöst, wenn der OK-Button geklickt wird.
        """
       
        selected_index = self.rb_auswahl.GetSelection()
        print u"Du hast folgende Auswahl getroffen: '%s'" % \
            self.choices[selected_index].strip()


if __name__ == "__main__":
    app = wx.PySimpleApp(
        redirect = True # leitet STDOUT in ein Fenster um
    )
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

Richtig interessant wird es aber erst dann, wenn du dir die Demo angesehen hast. Diese musst du extra installieren, befindet sich aber auch unter der URL, die oben angegeben ist.

mfg
Gerold
:-)

Edit: Ich hatte das Panel vergessen. Jetzt sieht das Beispielskript auch unter Windows gut aus.
Zuletzt geändert von gerold am Mittwoch 7. Juni 2006, 13:22, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Beitragvon beewee » Mittwoch 7. Juni 2006, 08:20

hm, ich kann wxwidgets ehrlich gesagt nicht empfehlen. Ich habe es bei einem Projekt benutzt, mit der Folge, dass sich das Programm bei manchen öffnet aber sofort wieder schließt.
Ich würde eher empfehlen, direkt pyGTK oder pyQT zu benutzen

BeeWee
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 7. Juni 2006, 08:32

beewee hat geschrieben:Ich habe es bei einem Projekt benutzt, mit der Folge, dass sich das Programm bei manchen öffnet aber sofort wieder schließt.

Hi BeeWee!

Du weißt aber schon, dass du normalerweise eine ausführliche Fehlermeldung bekommst, wenn du das Programm über die Konsole öffnest?

Ich habe sogar schon einige wxPython-Programme mit **cx_freeze** so verpackt, dass diese direkt von einer CD laufen. -- Ohne installiertem Python und wxPython. Siehe: http://www.python-forum.de/topic-5726.html

Insgesamt hatte ich bis jetzt mehr Probleme mit pyGTK als mit wxPython. pyQT verwende ich nicht, da man sich als kleiner Entwickler die Lizenz für kommerzielle Programme nicht leisten kann.

Natürlich ist die Wahl des GUI-Toolkits auch eine emotionelle Entscheidung. Das Toolkit muss man mögen, da man bei GUI-Programmen die meiste Zeit damit verbringt, das Verhalten (nicht das Aussehen) des GUI zu programmieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Beitragvon beewee » Mittwoch 7. Juni 2006, 08:55

Ja, ich weiß, dass ich normalerweise eine ausführliche Fehlermeldung kriege, wenn das so wäre, wäre es ja in Ordnung. Aber das ist eben nicht so (siehe hier in etlichen Beiträgen), das Fenster schließt sich ohne Kommentar sofort wieder :(

Grüße,

BeeWee
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Mittwoch 7. Juni 2006, 10:36

pyQT verwende ich nicht, da man sich als kleiner Entwickler die Lizenz für kommerzielle Programme nicht leisten kann.


Wenn es sich allerdings um OSS-Projekte handelt, die unter die GPL fallen sollen, ist eine komplette IDE mit Dokumentation (http://www.thekompany.com/products/blackadder/) nur 40€ teurer als das vorgeschlagene Buch. Ist natürlich kein Ersatz im kommerziellen Umfeld, im OSS oder Hobbybereich aber imho durchaus eine Überlegung wert.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Mittwoch 7. Juni 2006, 12:12

setzen denn pyqt und pygtk auf linux auf?
wen ja, kann man die trotzdem unter windows zum laufen bringen?

//edit:
am besten gefällt mir das mit den choices^^
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Beitragvon beewee » Mittwoch 7. Juni 2006, 12:27

pyqt und pygtk setzen zwar auf Linux auf, sind aber auch für Windows verfügbar (bei pyqt bin ich mir sicher, bei pygtk bin ich mir fast sicher :D )
Siehe hier

BeeWee
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Beitragvon Mr_Snede » Donnerstag 8. Juni 2006, 11:17

Zumindest QT gibt es für Windows, ist aber im Moment unter einer proprietäten+kostenpflichtigen Lizenz verfügbar.
Zum Erscheinen von QT4 (Ende des Jahres???) soll auch hier eine Doppellizenz verfügbar sein.
--> http://www.riverbankcomputing.co.uk/pyqt/download.php

Ich benutze im Moment für kleinere Sachen Tkinter weil es einfach dabei ist.
Programmiert habe ich noch nie mit wxpy aber aus meiner Erfahrung als Anwender hat es bei mir keinen guten Stand. Ist gefühlt zu langsam und einige Versionen waren auch mal etwas instabil. Deswegen habe ich keine Anwendungen mit wxpy in Benutzung.

Beeindruckend finde ich die Widgetsammlung von QT. Wie sich PyQT beim Programmieren "anfühlt", kann ich nicht sagen.

cu Sebastian
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 8. Juni 2006, 13:33

Ich nehm immer direkt pyGTK. Doe API ist wunderhübsch und es ist sehr flott. Da kann wx nicht mithalte, dass sich manchmal einfach in der Luft auflöst und auch ansonsten arschlahm im Vergleich ist. Und sowas wie .glade in gtk hab ich für wx noch nicht gefunden.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Beitragvon beewee » Donnerstag 8. Juni 2006, 14:10

Und sowas wie .glade in gtk hab ich für wx noch nicht gefunden.

Doch, ex gibt wxglade, allerdings ist das recht buggy und vom Funktionsumfang her nicht berauschend...

BeeWee
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Beitragvon de_master » Freitag 9. Juni 2006, 14:06

Ich kann wxPython nur empfehlen. Vorallem mit dem neuen Buch "wxPython in Action".

wxPython läuft bei mir auf Linux uns OSX einwandfrei. Auf OSX gibt es bei mir ab und an Probleme mit Images, jedoch ist das einfach zu handeln.

Michael
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

Beitragvon SigMA » Freitag 9. Juni 2006, 17:37

Es kommt auch immer darauf an wofür du programmierst. Die GTK Schnittstelle ist nun mal nativ nur für GNOME da und nur über mehr oder minder großen Umständen kann man es auf Windows benutzten (von den ganzen anderen WindowManager auf GNU/Linux Basis mal abgesehen). Solltest du nur Linux Programmer schreiben kannste gedrost zu pyGTK greifen =)

pyQT kann ich überhaupt nicht empfehlen. 1) weil es nicht frei (im Sinne von Freiheit) ist und 2) für KDE ist und es noch keine ordentliche Schnittstelle für GNOME, XFCE etc und Windows gibt

Willst du komplett Plattform unabhängig Programmieren solltest du zu wxPython greifen, da das auf _jeder_ Oberfläche gleich ausschaut. Du kann also auf Linux schon sehen wie es unter Windows ausschaut

mfg
SigMA
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Majestic-12 [Bot]