Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

wxwidgets et wxpython

16 réponses
Avatar
Baton Rouge
Bonjour

je debute dans la programmation sous linux/python et une question me
traverse l'esprit. En effet, sous delphi je n'avais pas a faire à
wxwidgets et wxpython.

Qu'est ce donc ces 2 bidules ? Se sont toutes 2 des interfaces
graphiques.

Y en a t il une plus complete/standard que l'autre ?

Merci de vos lumieres car ma lanterne manque de gaz.








--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?

10 réponses

1 2
Avatar
Eric Brunel
In article ,
Baton Rouge wrote:

Bonjour

je debute dans la programmation sous linux/python et une question me
traverse l'esprit. En effet, sous delphi je n'avais pas a faire à
wxwidgets et wxpython.

Qu'est ce donc ces 2 bidules ? Se sont toutes 2 des interfaces
graphiques.

Y en a t il une plus complete/standard que l'autre ?

Merci de vos lumieres car ma lanterne manque de gaz.



Bonjour,

En fait, wxWidgets et wxPython ne sont ni l'une ni l'autre des
"interfaces graphiques". wxWidgets est une couche de compatibilité au
dessus des APIs "natives" des différents systèmes de façon à pouvoir
coder des applications portables entre Windows, MacOS, Linux, et
d'autresŠ C'est une bibliothèque C++. wxPython est une surcouche de
wxWidgets permettant d'appeler cette bibliothèque C++ depuis Python.

Il existe par contre d'autres possibilités pour faire des interfaces
graphiques avec Python, presque toujours organisées de la même façon:
une bibliothèque C ou C++ au dessus des APIs natives des systèmes, et un
module d'adaptation pour Python. Les plus connues sont:
- tcl/tk - Tkinter
- wxWidgets - wxPython
- Qt - PyQt
- GTK - PyGTK
Toutes ont leurs forces et leurs faiblesses, et même s'il y a des
intégristes de chacun, le choix de l'un ou l'autre dépend beaucoup des
habitudes que l'on avait avant et du type d'application que l'on veut
faire. Donc à toi d'essayer, de te faire ta propre idée, et de choisir
celui qui te convient le mieux en fonction de ce que tu recherchesŠ

Bon courage!
Avatar
Baton Rouge
On Tue, 27 Jul 2010 09:30:35 +0200, Eric Brunel
wrote:

In article ,
Baton Rouge wrote:

Bonjour

je debute dans la programmation sous linux/python et une question me
traverse l'esprit. En effet, sous delphi je n'avais pas a faire à
wxwidgets et wxpython.

Qu'est ce donc ces 2 bidules ? Se sont toutes 2 des interfaces
graphiques.

Y en a t il une plus complete/standard que l'autre ?

Merci de vos lumieres car ma lanterne manque de gaz.



Bonjour,

En fait, wxWidgets et wxPython ne sont ni l'une ni l'autre des
"interfaces graphiques". wxWidgets est une couche de compatibilité au
dessus des APIs "natives" des différents systèmes de façon à pouvoir
coder des applications portables entre Windows, MacOS, Linux, et
d'autres¦ C'est une bibliothèque C++. wxPython est une surcouche de
wxWidgets permettant d'appeler cette bibliothèque C++ depuis Python.



ok c'est plus clair.

Il existe par contre d'autres possibilités pour faire des interfaces
graphiques avec Python, presque toujours organisées de la même façon:
une bibliothèque C ou C++ au dessus des APIs natives des systèmes, et un
module d'adaptation pour Python. Les plus connues sont:
- tcl/tk - Tkinter
- wxWidgets - wxPython
- Qt - PyQt
- GTK - PyGTK



Sachant que je veux commencer en python 3, donc wxpython est out, à
moins qu'une version (même unstable) sorte prochainement.
Qt et GTK me semblent trop tourné vers ubuntu et kde.

Il reste alors tcl/tk.

Toutes ont leurs forces et leurs faiblesses, et même s'il y a des
intégristes de chacun, le choix de l'un ou l'autre dépend beaucoup des
habitudes que l'on avait avant et du type d'application que l'on veut
faire. Donc à toi d'essayer, de te faire ta propre idée, et de choisir
celui qui te convient le mieux en fonction de ce que tu recherches¦



Ce que je veux faire :
- gestion d'une base perso simple type dbase/msaccess/xml. Pas de
serveur mysql ou autre joyeseuté qui planque la base quelque part on
ne sait où et qui necessite la caisse à outils pour l'exporter.
- interface graphique avec des composants graphique pour la gestion de
la base de donnees.
- convertir en binaire pour ne plus etre dependant de la version de
python installé sur la machine et ne pas devoir l'installer s'il n'est
pas present sur la machine. (J'ai vu freeze.py et py2exe)
- script pour ne plus avoir à scripter en bash.
- Pas de truc trop exotique pour que ça tourne sur n'importe quel OS.
- De même, j'aimerai que le look de l'interface se fonde au theme de
la machine. Par exemple, pas une fenetre avec angle pointu et une
grosse crois pour la fermer alors que le theme est à bord arrondi et
une croix fine.

ça fais beaucoup de choses. Si t'as des commentaires à faire sur ce
que je veux faire, n'hesite pas.

Bon courage!



Merci il m'en faudra car c'est un virage important que je vais
effectuer.

--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
Eric Brunel
In article ,
Baton Rouge wrote:
Sachant que je veux commencer en python 3, donc wxpython est out, à
moins qu'une version (même unstable) sorte prochainement.
Qt et GTK me semblent trop tourné vers ubuntu et kde.



Qt est effectivement le toolkit graphique sur lequel est basé KDE, mais
ce sont 2 projets séparés: KDE a besoin de Qt, mais pas le contraire. Le
problème "classique" qu'il y a (avait?) avec Qt est la licence, mais je
ne sais pas si c'est encore le cas. Quant à GTK, il n'a par contre rien
à voir avec KDE, vu que c'est la base de son concurrent direct, qui est
l'environnement Gnome. Les deux toolkits ont par contre leurs racines
dans l'environnement Unix/Linux, même s'ils ont été portés sur les
autres systèmes. Je sais que Qt, par exemple, utilise les widgets natifs
sur les différents systèmes. Pour GTK, je ne crois pas, mais je ne suis
pas très sûr...

Il reste alors tcl/tk.



Si j'ai bien compris, tu viens plutôt d'environnements RAD genre Delphi.
Si c'est le cas, tu vas avoir du mal avec tkinter, vu que c'est
typiquement un de ses points faibles: il n'y a pas d'outil graphique de
construction d'interface, il faut la coder. Personnellement, je n'y vois
pas d'inconvénient, et même à la limite, je préfère. Mais je sais que
c'est totalement rédhibitoire pour certains...

Ce que je veux faire :
- gestion d'une base perso simple type dbase/msaccess/xml. Pas de
serveur mysql ou autre joyeseuté qui planque la base quelque part on
ne sait où et qui necessite la caisse à outils pour l'exporter.



Les modules de connexion aux bases de données sont légion, et je suis
sûr que tu pourras trouver ce que tu veux sans aucun problème. Du temps
où je faisais de la base de données, je n'ai jamais eu de problème
là-dessus, bien que j'étais plus dans le cas d'une base client-serveur.

- interface graphique avec des composants graphique pour la gestion de
la base de donnees.
- convertir en binaire pour ne plus etre dependant de la version de
python installé sur la machine et ne pas devoir l'installer s'il n'est
pas present sur la machine. (J'ai vu freeze.py et py2exe)



J'utilise py2exe pour Windows et cx_freeze pour les autres. A priori, ce
sont deux solutions qui fonctionnent sans problème.

- script pour ne plus avoir à scripter en bash.
- Pas de truc trop exotique pour que ça tourne sur n'importe quel OS.
- De même, j'aimerai que le look de l'interface se fonde au theme de
la machine. Par exemple, pas une fenetre avec angle pointu et une
grosse crois pour la fermer alors que le theme est à bord arrondi et
une croix fine.



L'exemple de la croix n'est pas bien choisi, vu que c'est typiquement le
système qui gère les fenêtres et pas l'application. Mais je vois ce que
tu veux dire. J'ai déjà plus ou moins répondu à ça: je sais que
wxWidgets+wxPython, Qt+PyQt et tcl/tk+tkinter utilisent ou peuvent
utiliser les widgets "natifs". Pour le dernier, il faudra par contre
utiliser une version récente de tcl/tk (8.5 ou plus) et utiliser les
nouveaux widgets via le module tkinter.ttk, qui est inclus par défaut
dans Python 3.1. Une nouvelle fois, pour GTK, je ne suis pas sûr qu'il
ne gère pas ses propres widgets; à vérifier...
Avatar
Baton Rouge
On Tue, 27 Jul 2010 11:46:30 +0200, Eric Brunel
wrote:

Ce que je veux faire :
- gestion d'une base perso simple type dbase/msaccess/xml. Pas de
serveur mysql ou autre joyeseuté qui planque la base quelque part on
ne sait où et qui necessite la caisse à outils pour l'exporter.



Les modules de connexion aux bases de données sont légion



Le problème c'est que je ne trouve rien pour la base clipper (.dbf)
qui arrive à prendre en charge le memo (.fpt).

Même visualfoxpro a du mal avec et bug avec certaine fiche memo, mais
pas toute. Je soupçonne un probleme de charset.

J'aimerai juste migrer cette base sans perdre le memo même s'il y a
des problèmes de convertions de charset. C'est un moindre mal.

A moins d'avoir acces à la structure pour extraire manuellement ces
donnees.

Bon j'ai du pain sur la planche, mais c'est aussi un bon amusement en
perspective.




--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
Baton Rouge
On Tue, 27 Jul 2010 11:46:30 +0200, Eric Brunel
wrote:

Les modules de connexion aux bases de données sont légion, et je suis
sûr que tu pourras trouver ce que tu veux sans aucun problème. Du temps
où je faisais de la base de données, je n'ai jamais eu de problème
là-dessus, bien que j'étais plus dans le cas d'une base client-serveur.



Je vais attaquer directement la convertion de la base à la mano
Y a un dbf et un fpt.

Comme dans le fpt, les mémos se sont des bloc de 64bytes* je peux
recuperer les info et les coller dans un xml pour comparer. Le premier
etant utilisé par le header.


Pour les archive google.
* L'offset du memo peut se calculer. J'ai une base vide dbf où j'ai
collé des AAAAAAAAAAAAAAAAAAAAAAAAAAA ZZZZZZZZZZZZZZZZZZZZZZZZ
EEEEEEEEEEEEEE etc etc dans chaque champs et cela sur plusieurs fiche.
J'ai edité le memo par "azerty" et d'autre cible plus ou moins longue
(pour le fpt). Comme ça c'est plus facile de visualiser dans hexedit.
Comme mon champs mémo est collé avant un bool (dans le dbf), j'ai
juste a reperer le T et le numero du bloc se trouve le byte d'avant en
bcd (Ils sont gentil, ça m'evite de convertir en
hexa-bcd-LittleIndian). Ce numero de bloc faut le multiplié par 64
pour trouver l'offset (dans le fpt)

Ensuite (toujours dans fpt), offset + 4 on trouve la taille en bytes
du mémo. Puis offset +5, on trouve le mémo.

Me reste à faire les tests pour verifier l'integrité et le charset
(delphi ou python, je me tate). Si ça marche, je vais attaquer aussi
le dbf.

ça me rapelle le temps où je bricolais la FAT à la main sous
MSdos-je-sais-plus-combien avec debug.exe (y avait pas de undelete à
l'epoque où tres cher -> norton utilities)

Quand j'aurrai terminé, je collerai ici mon bricolage clipper2xml

Les prochaines nuits vont être longue...





--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
yves
Le Tue, 27 Jul 2010 20:00:49 +0200, Baton Rouge a écrit:

Bonjour,

Le problème c'est que je ne trouve rien pour la base clipper (.dbf) qui
arrive à prendre en charge le memo (.fpt).



En googlant "python dbf", on récupère pas mal de liens. Il n'y a vraiment
rien de valable là dedans ?

@+
--
Yves
Avatar
yves
Le Tue, 27 Jul 2010 10:58:19 +0200, Baton Rouge a écrit:


Ce que je veux faire :
- gestion d'une base perso simple type dbase/msaccess/xml.



Sqlite est intégré à Python.
Pas une usine à gaz.
Simple d'emploi.

http://www.sqlite.org/

@+
--
Yves
Avatar
Baton Rouge
On 27 Jul 2010 22:03:30 GMT, yves wrote:

Le Tue, 27 Jul 2010 20:00:49 +0200, Baton Rouge a écrit:

Bonjour,

Le problème c'est que je ne trouve rien pour la base clipper (.dbf) qui
arrive à prendre en charge le memo (.fpt).



En googlant "python dbf", on récupère pas mal de liens. Il n'y a vraiment
rien de valable là dedans ?



Pour la partie dbf, si. Mais pour ce qui concerne fpt (le mémo) rien
ou le peu qu'il y a, ca fonctionne pas.

Dans mon cas il ne s'agit pas de dbase mais une variante
clipper/foxpro que même visual foxpro à du mal à lire.
La base n'est pas corrompu car elle fonctionne sur le programme
clipper.

C'est pas grave, je vais pas me casser la tete a trouver un truc qui
n'existe peut etre pas. Je vais bricoler ça moi même.



--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
Baton Rouge
On 27 Jul 2010 22:17:57 GMT, yves wrote:

Ce que je veux faire :
- gestion d'une base perso simple type dbase/msaccess/xml.



Sqlite est intégré à Python.
Pas une usine à gaz.
Simple d'emploi.

http://www.sqlite.org/



La base est stocké dans quel genre de fichier(s) ?
Est ce que je peux prendre ce fichier et le balancer a quelqu'un par
piece jointe et qu'il le colle dans le repertoire de son programme ?
(comme une dbase, xls, xml,...) ?



--
Travailler plus pour gagner plus pour quoi faire ?
Pour finir par divorcer parce qu'on est pas souvent à la maison ou faire un malaise vagal et creuser le trou de la sécu ?
Avatar
yves
Le Wed, 28 Jul 2010 00:34:59 +0200, Baton Rouge a écrit:

La base est stocké dans quel genre de fichier(s) ?



Un fichier binaire.

Est ce que je peux
prendre ce fichier et le balancer a quelqu'un par piece jointe et qu'il
le colle dans le repertoire de son programme ? (comme une dbase, xls,
xml,...) ?



Oui.

--
Yves
1 2