Python gui
La deuxième étape consiste à modifier le programme pour définir les _ function () en utilisant le module python gettext. Cela se fait simplement comme un système de type GNU / Linux, mais nécessite plus de code sous Microsoft Windows, de sorte que vous pouvez trouver un exemple que pour GNU / Linux, et un exemple multi-plateforme.
Le seul fichier à modifier est le fichier qui sera exécuté (coincoin.py). Bien qu’il soit important de modules avec des chaînes marqués _ (), ils seront également traduits (si vous ne voulez pas que cela se produise, consultez la documentation python).
Les emplacements seront stockées dans un dossier local. Ceci est habituellement placés dans / usr / share / locale dans les systèmes GNU, et détecté automatiquement par le module gettext, mais doit être spécifié comme Microsoft Windows (ici le dossier local dans le dossier parent lorsque l’exécutable est utilisé, mais vous pouvez choisir une autre) .
Exemple uniquement pour GNU / Linux (et probablement d’autres non-Microsoft Windows): application = ‘coincoin’import gettextgettext.install ()[…] application # Si votre programme utilise glade, précisez bien la région gettext application: gtk.glade . XML gui = (fname = ‘coincoin.glade’ domain = application)
Exemple multi-plate-forme: application = ‘os.name coincoin’import gettext ==’ nt ‘:# # Code pour les fenêtres Windows de Microsoft chemin de dossier local win_local_path = os.path.abspath (os.path.join (os.path. Pardi ‘local’)) # Code pour l’interface gtk.glade.bindtextdomain clairière possible (win_local_path application) gtk . glade.textdomain (application) du code python # pour le programme (le module local # pour déterminer le langage courant) lang = locale.getdefaultlocale locales d’importation () [0] [: 2] essayer: gettext.translation cur_lang = localedir application ( = win_local_path, langues = [lang]) cur_lang.install () except IOError: # si la langue locale n’est pas supportée, # définit toute façon _ () _ = lambda texte: texte # Si il ya des chaînes à traduire dans d’autres modules # , généralement gérés par # cur_lang.install () ou gettext.install (), # vous devez également définir _ (). Exemple: _else sous_module._ = # code pour les systèmes d’exploitation autres gettext.install ()[…]# application Si votre programme utilise glade, préciser le champ de captage gettext # application: gui = gtk.glade.XML (fname = ‘ coincoin.glade ‘domain = application)
Il ya une dernière étape: la création d’un modèle de la traduction. Cela permettra de créer de nouvelles traductions et de les mettre à jour. Nous allons utiliser l’outil xgettext.Dans un terminal, allez dans le dossier où sont stockés des modules Python et tout clairière fichiers, et exécutez la commande: coincoin.pot xgettext-k_-o-kN_ *. py *. clairière
Coincoin.pot fichier est obtenu, il est le modèle pour de futures traductions. A chaque changement de programme nécessitera la mise à jour en redémarrant la commande.
Qt (prononcer officiellement mignon en anglais (/ t ː kju /), mais à tort couramment prononcée QT) est un cadre orienté objet et développé en C avec Qt Development Frameworks, une filiale de Nokia. Il fournit des composants d’interface graphique (widgets), d’accès aux données, connexions réseau, gestion des fils d’exécution, d’analyse XML, etc. Qt est un cadre à certains égards, lorsqu’il est utilisé pour développer des interfaces graphiques qui sont d’architecture ou de son application à l’aide de mécanismes tels que les signaux et les slots.
Qt permet la portabilité des applications qui utilisent uniquement les composants par simple recompilation du code source. Les environnements supportés sont Unix (dont Linux) qui utilisent le système X Window System, Windows et Mac OS X. En tant que bibliothèque de logiciels multi-plateforme attire un grand nombre de personnes qui ont la possibilité de diffuser leurs programmes sur les principaux OS existants.
Qt est particulièrement connue pour être la bibliothèque sur laquelle l’environnement graphique KDE, l’un des environnements les plus utilisés de bureau dans le monde Linux.
Architecture
Structure générale
L’API Qt est constitué de classes avec des noms préfixés par Q et dans lequel chaque mot commence par une lettre majuscule (par exemple QLineEdit) est le CamelCase typographie. Ces classes sont des attributs souvent énumérés types déclarés dans l’espace de noms Qt Outre une architecture objet pur, certaines fonctionnalités de base sont mises en œuvre par des macros (chaîne à traduire tr, afficher la sortie standard avec qDebug …).
Les conventions de nommage pour les méthodes sont assez similaires à Java: l’lowerCamelCase est utilisé, c’est-à-dire que tous, mais les premiers mots sont capitalisés (par exemple indicatorFollowsStyle ()), les modificateurs sont précédés par set En revanche accesseurs prennent simplement le nom de la attribut (par exemple: text ()) ou par ‘commence dans le cas des booléens (par exemple isChecked ()).
Arborescence des objets
objets Qt (ceux qui héritent de QObject) peuvent s’organiser comme un arbre. Ainsi, quand une classe est instancié, il est possible de définir un objet parent.Cette organisation d’objets comme un arbre rend la gestion de la mémoire parce que, avant un objet parent est détruit, Qt appelle récursivement le destructeur de tous les enfants.
Meta-Object compilateur
Le moc (Meta Object Compiler pour) est un préprocesseur qui s’appliquait avant de compiler le code source d’un programme Qt, générer les méta-informations sur les classes utilisées dans le programme. Ces méta-informations sont ensuite utilisées par Qt pour fournir des fonctions non disponibles dans C, tels que les signaux et les slots et d’introspection.
L’utilisation de ces programmes diffère d’autres outils Qt C standard. Cette opération est considérée par le Cadre de développement Qt comme un compromis nécessaire pour fournir des mécanismes d’introspection et de signaux. À la sortie de Qt 1.x, les implémentations de modèles par les compilateurs C ne sont pas suffisamment homogènes.
Signaux et les slots
Les signaux et les slots sont une implémentation de l’design pattern observateur. L’idée est de communiquer les objets entre eux via des signaux qui sont transmis et reçus par les fentes. Du point de vue du développeur, les signaux sont représentés par des méthodes simples de la classe d’émission à partir de laquelle il n’ya pas de mise en œuvre. Ces ‘méthodes’ sont alors appelés par le précédent ‘émettre’, ce qui signifie que la transmission du signal.Pour sa part, la fente connecté à un signal est un récepteur méthode de classe, qui doit avoir la même signature (ie les mêmes paramètres que le signal auquel il est connecté), mais à la différence des signaux, il doit être mis en œuvre par le developer.The code pour cette mise en œuvre représente les actions à réaliser à la réception.
concepteur d’interface
Qt Designer est un logiciel pour créer des interfaces graphiques Qt dans un environnement convivial. L’utilisateur, par glisser-déposer, placez les composants d’interface graphique et de résoudre leurs propriétés facilement. GUI fichiers sont au format XML et l’extension. Ui.
qmake
Qt qui veulent un environnement de développement portable avec la MOC comme une étape intermédiaire avant la phase de compilation / liaison, il était nécessaire de concevoir un moteur de production spécifique. Ainsi fut conçu le programme qmake.
Celui-ci prend en entrée un fichier (avec l’extension. Pro) déc
rivant le projet (liste des fichiers source, les dépendances, les paramètres passés au compilateur, etc.) De fichiers et génère un projet spécifique à la plate-forme.Ainsi, dans le cadre du Makefile UNIX qmake génère une liste contenant les commandes à exécuter pour générer un fichier exécutable, à l’exception des mesures spécifiques à Qt (génération des classes C dans la conception d’interface graphique avec Qt Designer, génération de code C pour relier les signaux et les slots, l’ajout d’un fichier au projet, etc) ..
Ces énoncés prospectifs exigent que l’exécutable est nommé MyApp, répertorie les fichiers source, fichiers d’en-tête et l’interface graphique. La dernière ligne indique que le projet nécessite le module Qt SQL
L’internationalisation
Qt intègre son propre système de traduction, qui n’est pas fondamentalement différente, en principe, de la bibliothèque gettext. Selon le manuel Qt Linguist, l’internationalisation est atteint grâce à la collaboration de trois types de personnes: développeurs, chef de projet et des traducteurs.
Dans leur code source, les développeurs de saisir des chaînes dans leur propre langue. Ils doivent permettre la traduction de ces canaux à travers tr () method.In cas d’ambiguïté sur le sens d’une expression, ils peuvent aussi indiquer des commentaires pour aider les traducteurs.
Le gestionnaire de projet a déclaré les fichiers de traduction (un pour chaque langue) dans le dossier de projet.L’utilitaire fonctionne sources lupdate à la recherche de chaînes à traduire et synchroniser des fichiers avec des sources de traduction. Les fichiers de traduction sont des fichiers XML avec l’extension. Ts.
Les traducteurs utilisent Qt Linguist pour informer les fichiers de traduction. Lorsque les traductions sont terminées, le chef de projet peut compiler des fichiers. Ts en utilisant l’utilitaire lrelease qui génère des fichiers binaires avec l’extension. Qm, utilisables par le programme. Ces fichiers sont lus et exécuter les cordes que l’on trouve remplacer ceux qui ont été écrites par les développeurs.
Style
La bibliothèque intègre différents thèmes de widgets qui donnent une bonne intégration visuelle sur toutes les plateformes. Sur les environnements de bureau GNOME, Windows et Mac OS X et des applications Qt avoir l’aspect d’applications natives.
Qt vous permet de personnaliser l’apparence des différents composants d’interface graphique en utilisant le principe des feuilles de style (CSS).
Usages
De plus en plus les développeurs utilisant Qt, y compris certaines grandes entreprises. Il s’agit notamment de: Google, Adobe Systems et la NASA. Le site répertorie les entreprises qui utilisent Trolltech Qt et applications basée sur Qt
Francophones
FreeCAD (à ne pas confondre avec freeCAD Aik-Siong Koh) est une application de modélisation 3D Open Source pour les CAD, CAE, PLM, orienté vers la mécanique et la conception des produits, mais aussi des objectifs d’autres disciplines, comme l’architecture ou d’autres branches de l’ingénierie.
Liaisons
Liaisons existent afin de pouvoir utiliser Qt avec d’autres langages que C. Et les langages de programmation comme Java (Qt Jambi), Python (PyQt, PySide, PythonQt), Ruby (qtruby), Ada (QtAda), C # (Qyoto), Pascal (FreePascal Qt4), Perl (Perl Qt4), Haskell (Qt Haskell), Lua (lqt, QtLua), Dao (DaoQt), Tcl (qtcl), Common Lisp (CommonQt), D (QTD) peuvent être utilisés.
Caractéristiques
FreeCAD est un logiciel de conception paramétrique offrant des outils tels que CATIA, SolidWorks et Solid Edge. Il a une architecture modulaire qui permet d’ajouter de nouvelles fonctionnalités facilement, sans modifier l’application de base.
‘