Seite 1 von 2

Verfasst: Mittwoch 25. Juli 2007, 15:07
von lunar
pyStyler hat geschrieben:
Miko hat geschrieben: ......oder tkinter aber das ist ja so hässlich....
Hässlich unter Windows? Wie soll deine Anwendung denn Aussehen?
Nein, unter Linux. Diese Diskussion hatten wir hier schon mal, und ich erlaube mir mal, den Screenshot, den ich dort gepostet hatte, hier ebenfalls einzustellen:

Bild

Das ist Tk unter Linux... wem's gefällt...


@gerold:
Ich habe es noch nie versucht, da ich nicht unter Windows programmiere. Allerdings ist PyQt4 selbst portabel. Immerhin laufen viele Alpha-Versionen von KDE4 Programmen (z.B. Amarok) nahezu einwandfrei unter Windows.

Allerdings ist jetzt mein Ehrgeiz geweckt: Ich werd mich mal an einem PyQt4 Hello World unter Windows versuchen.

Verfasst: Mittwoch 25. Juli 2007, 15:09
von gerold
lunar hat geschrieben:Zwei Doppelklicks auf "setup.exe" sind doch wohl nicht schwer, oder?
Hallo lunar!

Ich glaube, das ist doch nicht so einfach. Aber Gott behüte (wenn ich daran glauben würde) -- ich werde es jetzt sicher nicht ausprobieren. :roll:

lg
Gerold
:-)

Verfasst: Mittwoch 25. Juli 2007, 15:11
von birkenfeld
Miko hat geschrieben: funktioniert die wxpython demo unter linux?
Ja, einwandfrei. Genauso wie die Doku. Beides wurde bei mir (Gentoo) im Paket wxpython-docs installiert.
Weiß jemand wie man gtk unter windows zum laufen bekommt?
Ich kann mich nur wiederholen: Das development-Paket von gladewin32 und dann pygtk, pygobject und pycairo sollte genügen.
ich glaube ich entscheide mich für wx. Irgendwie scheint das der beste kompromiss zwischen plattformunabhängigkeit und funktionsvielfalt zu sein. Nur die umständlichkeit stört mich etwas.
Willkommen in der GUI-Welt. So richtig "straightforward" ist kein Toolkit.

Verfasst: Mittwoch 25. Juli 2007, 15:25
von pyStyler
lunar hat geschrieben:
pyStyler hat geschrieben:
Miko hat geschrieben: ......oder tkinter aber das ist ja so hässlich....
Hässlich unter Windows? Wie soll deine Anwendung denn Aussehen?
....Nein, unter Linux.

Das ist Tk unter Linux... wem's gefällt...
irgendwie habe ich wohl das lesen verlernt!
Der Miko schrieb doch, dass er gerne weiter unter Windows Programmieren will.

Verfasst: Mittwoch 25. Juli 2007, 15:32
von lunar
pyStyler hat geschrieben:
Das ist Tk unter Linux... wem's gefällt...
irgendwie habe ich wohl das lesen verlernt!
Der Miko schrieb doch, dass er gerne weiter unter Windows Programmieren will.
Auf windowskompatiblität könnte ich ja eigentlich verzichten. nur in der schule haben wir leider windows und da will ich auch häufiger dran weiterprogrammieren
Das hört sich irgendwie so an, als läge der Fokus doch deutlich auf Linux, und dann ist ein hässliches GUI Toolkit doch irgendwie suboptimal.

@gerold
Mmmh, mein Selbstversuch mit Qt4 wird sich noch etwas hinziehen: Der 58 MB große :shock: Download von Qt4 4.2.3 tröpfelt gerade mit flockigen 88 KB/s herein, mehr gibt meine Internetverbindung nicht her ;)

Verfasst: Mittwoch 25. Juli 2007, 15:37
von Miko
Was mich mal interessieren würde:

- Wie kann ich docs per apt-get installiert anschauen? bzw. Wo finde ich diese?

--------

Danke für die zahlreiche hilfe. aber schaut euch mal tkinter an. schriftantialiasing kann es nicht und somit wirkt es mehr als pixelig.
die radiobuttons sind potthässlich.

Naja tkinter ist so straightforward. da hat das gut funktioniert ^^

Verfasst: Mittwoch 25. Juli 2007, 15:54
von gerold
Miko hat geschrieben:Wie kann ich docs per apt-get installiert anschauen? bzw. Wo finde ich diese?
Hallo Miko!

Sprichst du von wxPython? Wenn Ja:
Demo and Sample Apps

Since the RPMs no longer include the demo or samples, it is now packaged separately. Why did I do this? Well the demo is intended to be a learning tool, but when installed from the RPM all the demo files are owned by root. As a separate tarball you can put the files where ever you want and since they'll be owned by you when you untar them you can play and tweak to your heart's desire.
Download der Demo für wxPython 2.8.4: http://prdownloads.sourceforge.net/wxpy ... .0.tar.bz2

Dokumentation:
Es gibt zwar eine Auflistung der wxPython-API, aber die bringt einem nicht viel. http://wxpython.wxcommunity.com/docs/api/

Besser ist die wxWidgets-Dokumentation im Internet: http://wxwidgets.org/manuals/stable/wx_contents.html
Aus der kann man recht viel heraus lesen.

Und zum Beginnen gibt es nichts Besseres als "wxPython in Action". Wer sich das nicht leisten kann, dem lege ich mindestens die Links dieser Seite http://www.python-forum.de/topic-7916.html nahe. Auch wenn diese das Buch nie ersetzen können.

mfg
Gerold
:-)

Verfasst: Mittwoch 25. Juli 2007, 16:01
von Miko
Ich mein allgemein Dokumentationen die man per apt-get installiert. Das würd mich mal interessieren.

Ne kleine Zwischenfrage, ein Freund von mir hat mal eine getch Funktion für Python programmiert. Leider habe ich sie nicht mehr und er ist derzeit verreist. Hat jemand etwas ähnliches?

Wegen "wx Python in Action" bin ich noch etwas unschlüssig ob ich mir wirklich das Englisch antun soll.

Aber Gerold großes Lob an dich. Du bist einer der wenigen im Forum die nicht so schnell unhöflich werden. Häufig wird man hier von Admins und Pythonnerds von oben herab behandelt. Da traut man sich garnicht mehr fragen.

Verfasst: Mittwoch 25. Juli 2007, 16:38
von lunar
So, jetzt folgt mein Installationsbericht für Qt4 unter Windows (besonders für gerold ;) ).

Ich habe mir PyQt4 für Python 2.5 und Qt 4.2.3 als Binärpaket heruntergeladen (für die Quellen hatte ich keine Geduld, da das Übersetzen von PyQt4 eine halbe Ewigkeit dauert). Dazu die passende Qt Version 4.2.3. Nach dem endlosen Download habe ich zuerst Qt4 installiert. Das dauerte etwas länger, da Qt4 unbedingt noch Mingw herunterladen wollte. Nachdem das vollbracht war, habe ich PyQt4 installiert.

Mein Beispielprogramm war ein einfacher Port des Hello World Programms aus der Trolltech Doku:

Code: Alles auswählen

# -*- coding: utf-8 -*-

import sys

from qt import QApplication, QPushButton


def main():
    app = QApplication(sys.argv)

    hello = QPushButton('Hello world!')
    hello.resize(100, 30)

    hello.show()
    return app.exec_loop()

if __name__ == '__main__':
    main()
Das war relativ naiv anhand meiner PyQt3 Kenntnisse portiert und schlug prompt fehl: No module named qt... ok, ich hätte vorher die (Py)Qt4 Dokumentation lesen sollen ;)

Anhand der Doku kam ich dann darauf qt durch PyQt4.QtGui zu ersetzen. Das schlug dann ebenfalls fehl, weil die nötigen DLLs nicht gefunden wurde. Die Lösung lag auch hier mehr oder minder auf der Hand: Das bin Verzeichnis der Qt Installation, welches neben den Utilities wie qmake oder moc auch die DLLs enthält, muss in den PATH eingetragen werden.

Nach der fälligen Neuanmeldung wurde die GUI zwar angezeigt, ich erhielt allerdings trotzdem einen AttributError: exec_loop war nicht bekannt. Die Ursache war ebenfalls die Anwendung meiner Qt3 Kenntnisse. In PyQt4 heißt die entsprechende Funktion exec_, wie aus der PyQt4 Klassenreferenz ersichtlich war.

Der folgende Code läuft einwandfrei unter Windows:

Code: Alles auswählen

# -*- coding: utf-8 -*-

import sys

from PyQt4.QtGui import QApplication, QPushButton


def main():
    app = QApplication(sys.argv)

    hello = QPushButton('Hello world!')
    hello.resize(100, 30)

    hello.show()
    return app.exec_()

if __name__ == '__main__':
    main()
Alles in allem war die ganze Sache doch recht schmerzlos. Es gab zwar einige kleinere Probleme, aber nichts, was sich nicht in einer anständigen INSTALL Datei erklären liese.

Beim Erforschen der PyQt4 Dokumentation sind mir übrigens noch einige Dinge im Vergleich zu PyQt3 positiv aufgefallen:
  • PyQt4 bietet jetzt eine eigenen Klassenreferenz, die zwar noch C++ Snippets enthält, was aber laut Aussage von Riverbank Computing in zukünftigen Versionen korrigiert werden soll.
  • Außerdem bietet PyQt4 das neue uic Modul, dass Qt4 Designer Dateien on-thy-fly laden kann (genau wie Glade). Dadurch entfällt die Ausführung von pyuic zur Übersetzung der GUI Dateien und der Qt Designer zieht in punkto Komfort mit glade gleich.

Verfasst: Mittwoch 25. Juli 2007, 16:40
von BlackJack
@lunar: Sooo hässlich ist Tk nicht wie auf Deinem Bild. Da ist irgend etwas falsch konfiguriert. Normal sähe das so aus:

Bild

Nicht gerade hypermodern, aber IMHO annehmbar. Und irgendwann wird wohl auch `Tile` mal fertig, dann gibt's Skins/Themes für Tk die etwas moderner aussehen.

Verfasst: Mittwoch 25. Juli 2007, 17:01
von lunar
BlackJack hat geschrieben:@lunar: Sooo hässlich ist Tk nicht wie auf Deinem Bild. Da ist irgend etwas falsch konfiguriert.
Bewusst habe ich das nie konfiguriert, da ich es wie gesagt nicht einsetze und auch keine Tk Programme verwende.
Normal sähe das so aus [...] Nicht gerade hypermodern, aber IMHO annehmbar.
Auch bei dir sind die Schriften nicht geglättet, auch bei dir sehen Listboxen und Radiobuttons aus wie aus dem vorigen Jahrhundert ;)
Die Schriftart allerdings scheint anders zu sein, und wirkt durch den grauen Hintergrund angenehmer. Insgesamt fällt nicht so sehr auf, dass Antialiasing fehlt, aber von schön ist imho auch dieser Shot weit entfernt ;)
Und irgendwann wird wohl auch `Tile` mal fertig, dann gibt's Skins/Themes für Tk die etwas moderner aussehen.
Ja, auch von Hurd sagt man, er solle irgendwann laufen ;)

Tk wäre ja ein echt cooles Toolkit, wenn es nur ein klein wenig hübscher wäre ;) Allerdings stellt sich mir angesichts der offensichtlichen Nachteile von Tk die Frage, warum Python an Tk festhält. Imho wäre es besser, WxWidgets zu integrieren, da dieses Toolkit mächtiger ist, schöner aussieht und ebenfalls portabel ist.

Verfasst: Mittwoch 25. Juli 2007, 18:03
von pyStyler
BlackJack mit Tile hast Du vollkommen recht.
Es wird nicht lange dauern.
Ein vorgeschmak?

Bild

Wie heisst es - es ist unvermeidbar :wink:

Verfasst: Mittwoch 25. Juli 2007, 18:26
von gerold
lunar hat geschrieben:So, jetzt folgt mein Installationsbericht für Qt4 unter Windows (besonders für gerold ;) ).
:D Danke!

lg
Gerold
:-)

Verfasst: Mittwoch 25. Juli 2007, 18:36
von birkenfeld
lunar hat geschrieben:Allerdings stellt sich mir angesichts der offensichtlichen Nachteile von Tk die Frage, warum Python an Tk festhält. Imho wäre es besser, WxWidgets zu integrieren, da dieses Toolkit mächtiger ist, schöner aussieht und ebenfalls portabel ist.
Du weißt, wie groß wx ist?

Verfasst: Mittwoch 25. Juli 2007, 19:13
von gerold
birkenfeld hat geschrieben:Du weißt, wie groß wx ist?
7,11 MB :D

Verfasst: Mittwoch 25. Juli 2007, 19:45
von veers
Gab es nicht sogar von Guido irgend wann die Aussage das sie tk und nicht wx nehmen weil tk früher da war?

Verfasst: Mittwoch 25. Juli 2007, 21:07
von birkenfeld
Der wxPython-Tarball hat ausgepackt knapp 180 MB. Python hat momentan rund 50 MB.

Sprich, wenn dann müsste Python in wxPython integriert werden :)

Verfasst: Mittwoch 25. Juli 2007, 21:50
von gerold
birkenfeld hat geschrieben:Der wxPython-Tarball hat ausgepackt knapp 180 MB. Python hat momentan rund 50 MB. Sprich, wenn dann müsste Python in wxPython integriert werden :)
Hallo birkenfeld!

Interessanter Gedanke. :lol:

Wenn man wxPython mit der Setup.exe unter Windows installiert, dann werden dort 33,2 MB installiert. Das ist sicher nicht wenig, aber für ein voll einsatzbereites GUI-Toolkit... -- damit könnte ich leben.

Bei diesen 180 MB sind ja auch die Quellen für jedes unterstützte System mit dabei (Mac, Windows, GTK). In fertig kompilierter Form wird das sicher auch unter Linux nicht so viel werden.

Aber eigentlich ist mir die Größe des Quellcodes nicht so wichtig. Einer der wichtigsten (Windows-)Vorteile von wxPython ist der, dass man es unter Windows mit dem Ausführen von nur einer Setupdatei installieren kann. Es muss nicht noch extra ein GTK oder ein QT installiert werden.

lg
Gerold
:-)

Verfasst: Mittwoch 25. Juli 2007, 21:52
von birkenfeld
gerold hat geschrieben: Aber eigentlich ist mir die Größe des Quellcodes nicht so wichtig. Einer der wichtigsten (Windows-)Vorteile von wxPython ist der, dass man es unter Windows mit dem Ausführen von nur einer Setupdatei installieren kann. Es muss nicht noch extra ein GTK oder ein QT installiert werden.
Ja, das stimmt.

Ich wollte eher den Grund darlegen, warum wx nie ein Python-Standardmodul werden wird.

Verfasst: Mittwoch 25. Juli 2007, 21:58
von gerold
birkenfeld hat geschrieben:Ich wollte eher den Grund darlegen, warum wx nie ein Python-Standardmodul werden wird.
Hallo birkenfeld!

Ja, da muss wahrscheinlich viel passieren bevor wxPython ein Standardmodul wird. :roll:
Hilft es, wenn ich in Hungerstreik trete. :twisted:

lg
Gerold
:-)