2010-09-15 3 views
5

Python hat many GUI toolkits. Wenn ich richtig verstehe, übernehmen diese Toolkits typischerweise die Verantwortung für das Rendern eigener Widgets (anstatt sich auf das Betriebssystem zu verlassen). Dies ermöglicht plattformübergreifende Unterstützung auf Kosten von Widgets, die nicht unbedingt genau so aussehen, sich anfühlen und verhalten wie ihre eigenen Gegenstücke. Hat Python ein plattformübergreifendes GUI-Toolkit, und nutzt die systemeigenen Widgets?Verfügt Python über ein plattformübergreifendes GUI-Toolkit, das native Widgets verwendet?

Nach GUI Programming in Python, gibt es mindestens zwei Kandidaten:

Lucid

Leider ist diese Bibliothek verschwunden zu sein scheint. Der Link verweist jetzt auf Icy Labs, ein Unternehmen, das "Komponenten und Geräte für die Entwicklung von Elektronik und Robotik entwickelt und vertreibt" (???).

PySWT

Dies ist eine Portierung der SWT Bibliothek für Java (die ich bereits vertraut bin). Diese Bibliothek ist nicht fühlen wie Python (zum Beispiel behält es die set* und get* Methoden, die in Java üblich sind). Daher bin ich gespannt, ob es eine autoritativere Bibliothek gibt, die meine Bedürfnisse erfüllt.

Antwort

5

Ist wxWidgets eine Option? Soweit ich weiß, integriert es sich mit allem, was das OS zu bieten hat - win32 unter Windows, gtk unter Linux und, ich denke, Aqua unter OSX.

+0

Diese Bibliothek sieht sehr vielversprechend aus! [Eines der ersten Beispielprogramme] (http://wiki.wxpython.org/Getting%20Started#Adding_a_menu_bar) überwindet sogar [einen bekannten Mangel, den ich mit SWT habe] (http://stackoverflow.com/q/2117057/41619)! –

+0

@Adam wx ist ziemlich gut, aber es gibt immer noch Kompatibilitätsprobleme herum. Solange es dafür Tests gibt, sollte es keine Probleme geben. –

+0

@Dana the Sane: Wo kann ich über diese Kompatibilitätsprobleme erfahren? –

4

Was ist mit Qt?

Und es ist begleitende Wrapper, PyQt? http://en.wikipedia.org/wiki/PyQt

Qt sieht größtenteils nativ aus. Ich glaube nicht, dass Sie jemals ein plattformübergreifendes Toolkit finden werden, das ausschließlich native Widgets verwendet und trotzdem plattformübergreifend ist. Diese Ziele schließen sich teilweise gegenseitig aus.

+1

Qt hat eine [Widget-Galerie] (http://doc.trolltech.com/4.6/gallery.html), so dass der Fragesteller selbst entscheiden kann, ob Qt nativ genug aussieht, was ich denke. Außerdem werde ich feststellen, dass der KDE4-Stil nicht dort ist. – jonescb

+0

Danke für die Empfehlung. Ich wusste bereits von Qt, aber ich war auf der Suche nach etwas, das dem nativen Look-and-Feel noch näher kommt (Qt-Anwendungen haben sich typischerweise "anders" angefühlt). Ich stimme zu, dass die Ziele sich gegenseitig ausschließen, also sollte ich klarstellen, was ich meinte. Ich dachte an die Denkweise von SWT, die alles nativ rendern will, es sei denn, die Plattform hat kein solches Widget. In diesem Fall greift SWT darauf zurück, das Widget selbst auf dieser Plattform zu rendern. –

+0

Ich habe gerade auf Wikipedia festgestellt, dass (neuere Versionen von Qt verwenden die nativen APIs der verschiedenen Plattformen, um die Qt-Steuerelemente zu zeichnen, und so nicht von solchen Problemen leiden) [http://en.wikipedia.org/wiki/Qt_ (http://en.wikipedia.org/wiki/Qt_ Framework) # Use_of_native_UI-rendering_APIs]. Deshalb habe ich mich geirrt. Ich werde es noch einmal sehen müssen. –

3

pyside LGPL Bindungen für qt. Beachten Sie, dass es auch PyQt gibt, das GPL ist oder für Closed-Source-Nutzung bezahlt wurde.

+0

Danke für die Empfehlung! Allerdings würde ich etwas wirklich Natives bevorzugen (obwohl Qt einen tapferen Versuch macht, es zu emulieren). :) –

+0

laut wikipedia: Qt verwendete das native Aussehen seiner vorgesehenen Plattformen, was gelegentlich zu kleinen Abweichungen führte, wo diese Emulation nicht perfekt war. Aktuelle Versionen von Qt verwenden die nativen APIs der verschiedenen Plattformen, um die Qt-Steuerelemente zu zeichnen, und leiden daher nicht unter diesen Problemen. – stonemetal

+0

Danke für diesen Kommentar! Ich habe diesen Kommentar auch bemerkt. Ich werde Qt noch einmal sehen müssen. –

0

Ich habe vor kurzem Toga gefunden. Denken Sie, es ist neu, immer noch viele native Widgets, aber ist ziemlich einfach zu erlernen.

Verwandte Themen