2010-09-15 22 views
5

Python a many GUI toolkits. Si je comprends bien, ces toolkits prennent généralement la responsabilité de rendre leurs propres widgets (plutôt que de s'appuyer sur le système d'exploitation). Cela permet d'obtenir un support multiplateforme au prix d'avoir des widgets qui ne ressemblent pas nécessairement, ne se sentent pas et ne se comportent pas exactement comme leurs homologues natifs. Est-ce que Python a une boîte à outils GUI multi-plateforme et tire parti des widgets natifs de chaque système?Est-ce que Python dispose d'une boîte à outils graphique multi-plateforme qui utilise des widgets natifs?

Selon GUI Programming in Python, il y a au moins deux candidats:

Lucid

Malheureusement, cette bibliothèque semble avoir disparu. Son lien redirige maintenant vers Icy Labs, une entreprise qui "conçoit et distribue des composants et des appareils pour le développement de l'électronique et de la robotique" (???).

PySWT

Ceci est un port de la bibliothèque SWT pour Java (que je suis déjà au courant). Cette bibliothèque ne ressemble pas comme Python (par exemple, il conserve les méthodes set* et get* qui sont communs dans Java). Par conséquent, je suis curieux de savoir s'il existe une bibliothèque plus autoritaire qui répond à mes besoins.

Répondre

5

wxWidgets est-il une option? Pour autant que je sache, il s'intègre à tout ce que le système d'exploitation a à offrir - win32 sur Windows, gtk sur Linux et, je pense, Aqua sur OSX.

+0

Cette bibliothèque a l'air très prometteuse! [Un des premiers exemples de programmes] (http://wiki.wxpython.org/Getting%20Started#Adding_a_menu_bar) surmonte même [une lacune connue que j'ai avec SWT] (http://stackoverflow.com/q/2117057/41619)! –

+0

@Adam wx est plutôt bon, mais il y a encore des problèmes de compatibilité. Tant qu'il y aura des tests pour cela, il ne devrait pas y avoir de problèmes. –

+0

@Dana the Sane: Où puis-je en apprendre davantage sur ces problèmes de compatibilité? –

4

Qu'en est-il de Qt?

Et c'est wrapper Attendant, PyQt? http://en.wikipedia.org/wiki/PyQt

Qt semble pour la plupart natif. Je ne pense pas que vous trouverez jamais une boîte à outils multi-plateforme qui utilise exclusivement des widgets natifs et qui soit toujours multi-plateforme. Ces objectifs sont dans une certaine mesure mutuellement exclusifs.

+1

Qt dispose d'une [widget gallery] (http://doc.trolltech.com/4.6/gallery.html) pour que le demandeur puisse décider lui-même si Qt semble assez natif, ce que je pense. Aussi, je noterai que le style KDE4 n'est pas là. – jonescb

+0

Merci pour la recommandation. Je connaissais déjà Qt, mais je cherchais quelque chose de plus proche du look-and-feel natif (les applications Qt se sont généralement senties "différentes" pour moi). Je suis d'accord que les objectifs semblent quelque peu mutuellement exclusifs, alors je devrais clarifier ce que je voulais dire. Je pensais à partir de l'état d'esprit de SWT qui tente de tout rendre nativement, à moins que la plate-forme ne dispose pas d'un tel widget. Dans ce cas, SWT revient à rendre le widget lui-même sur cette plate-forme. –

+0

Je viens de remarquer sur Wikipedia que (les versions récentes de Qt utilisent les API natives des différentes plates-formes pour dessiner les contrôles Qt, et ne souffrent donc pas de tels problèmes) [http://en.wikipedia.org/wiki/Qt_ (framework) # Use_of_native_UI-rendering_APIs]. Par conséquent, je me suis trompé à ce sujet. Je vais devoir y jeter un autre coup d'oeil. –

3

pyside Liaisons LGPL pour qt. Notez qu'il y a aussi PyQt qui est GPL ou payé pour l'utilisation de source fermée.

+0

Merci pour la recommandation! Cependant, je préférerais quelque chose de vraiment natif (bien que Qt fasse une vaillante tentative d'émulation). :) –

+0

selon wikipedia: Qt utilisé pour émuler l'aspect natif de ses plates-formes prévues, ce qui a parfois conduit à de légères différences où cette émulation était imparfaite. Les versions récentes de Qt utilisent les API natives des différentes plates-formes pour dessiner les contrôles Qt, et ne souffrent donc pas de tels problèmes. – stonemetal

+0

Merci pour ce commentaire! J'ai aussi remarqué ce commentaire. Je vais devoir donner un autre regard à Qt. –

0

J'ai récemment trouvé Toga. Pensez qu'il est nouveau, il manque toujours beaucoup de widgets natifs, mais il est assez facile à ramasser.