Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révision Les deux révisions suivantes | ||
pyqt4_images_dans_source [2014/08/15 21:44] tyrtamos |
pyqt4_images_dans_source [2014/08/15 22:15] tyrtamos |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Intégrer et utiliser des images dans le code source | + | ====== Intégrer et utiliser des images dans le code source ====== |
===== Problématique ===== | ===== Problématique ===== | ||
+ | Lorsqu' | ||
+ | Une solution qui élimine le problème du chemin est de convertir le fichier de l' | ||
===== Créer une variable chaine représentant le fichier image ===== | ===== Créer une variable chaine représentant le fichier image ===== | ||
+ | Prenons à titre d' | ||
+ | |||
+ | Voilà un code qui va le convertir en chaine de caractères: | ||
+ | |||
+ | <code python># | ||
+ | # -*- coding: utf-8 -*- | ||
+ | # Python 3, PyQt4 | ||
+ | |||
+ | import base64 | ||
+ | |||
+ | def fichier2source(nfc, | ||
+ | """ | ||
+ | with open(nfc, " | ||
+ | chbin = f.read() | ||
+ | ch64 = base64.b64encode(chbin).decode(' | ||
+ | ch = nvar + ' = " | ||
+ | lg = len(ch64) | ||
+ | i2 = 0 | ||
+ | while True: | ||
+ | i1 = i2 | ||
+ | i2 = min(i1+nbcar, | ||
+ | if i2>i1: | ||
+ | ch += ch64[i1:i2] + ' | ||
+ | else: | ||
+ | break | ||
+ | ch += '"' | ||
+ | return ch | ||
+ | |||
+ | nfc = " | ||
+ | print(fichier2source(nfc, | ||
+ | </ | ||
+ | |||
+ | Et voilà le résultat: | ||
+ | |||
+ | <code python> | ||
+ | iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAANT0lEQVR42u2dC3gTVRbH/ | ||
+ | 5O+S4GWSi20Qi20vAQEIyCIsujii/ | ||
+ | NDlgVBwAgCClgEWmyHl1hLC30ne24mk8ykac0kk5va9P9982Vm7um5557fvXdm2uaOAJc\ | ||
+ | iNkdhUH8bpkc0w5WIQAKapJ+qUFR1Ht9sFzB/ | ||
+ | SclAWFiww24cqqkBTp8Evt4E5P5UffQcZnWoxEIqKWcAwv4Tjj8Pi4cZplvDUXQW2LlF4\ | ||
+ | mMLduSNRCzLEbT1vQZISATMH1VvKMZQUxU2sqKWlVFYG9E7/ | ||
+ | X76MbICmQxAEm2BBxBh9Q4HCsIdnihoUtTgSMFJUIROjIAbWxJEMGm+6pgRxYiYtMRXRa\ | ||
+ | E02jrAmANdlQhJoM7AHbBbbro8pEgbWoAbK9pFPAR9X7W2dUA2MmaYEcWImLXW6s7AHay\ | ||
+ | OtiRhYjC4eEizE42AeAjR67VANitUdNtKB85cq0GEEl7lfxisJRJn8YYfW0D7VsXOXKtB\ | ||
+ | hBNexV86rdcoAafk+55LS0EGGP1sQ20b90URVt5EAHgpNsDR7Kgj22gfesljwBa0hg8V8\ | ||
+ | YngFAH0IJyXVzmBiAlGThxkk8AJ9wa3kbQxzbQvvVSG8p14Uk3AOlpQF4enwBCHUBaGnA\ | ||
+ | 0zw1A565A7gE+AYQ6gEzK9aEDbgC69wAO7OMTgOjW8LaCPraB9q2XulKu9+9zA2DsA+zZ\ | ||
+ | xSeAUAfQi3Jt2eUGoE9/ | ||
+ | / | ||
+ | RCmzZ7LRpEud74iRuAG4fRyfW+Oy38nWQqADSk5Dtjck+qhvZo1vWU68/ | ||
+ | frvXdacHvBJwqeG8bLGmJMdUPADdRrtevVQBoRQBuuxPY8K5/ | ||
+ | LoQzMoCWBODuUcC61Xwa+kcAEEgNp1y/ | ||
+ | jchFMkAmhGAhx4A3nuDTwChDuAOyvXyNyAUywBiCMCkh4A1r/ | ||
+ | oATJsErF7MJ4DjDRRAO04ARlGuFy6GcF4GEEEAHpsKrFzAJ4BQBzCGcj1/ | ||
+ | ZDqyY75dfS0ndZcbmioM/ | ||
+ | K7+BAvAyRksCPTW38KOeByjXs1+AUCUDgCBi7hN0YZjju9PfS2ojAlDLVqvGzwJmzYFQ4\ | ||
+ | wRgEDEvB1jyjO9OmwB4r4lPATOfgWBzALAiXBReehJY9JR/ | ||
+ | NF2dTRpz0FATYJQA0iRcMrT/ | ||
+ | AuQ30q5iZnP43Mftp2CY9AQOqJQAVBCDytWf5AThY4r+PQKiLv/ | ||
+ | I1qMWvY8XYT/ | ||
+ | 5hPPZNyUHn/ | ||
+ | jAbD4BWAr51KNVxhQ+9WQ/ | ||
+ | qb5r2tvii7Fm4cPdkNMMFCUARAYhfswhY6PsUZCk4C2NBcd0G/ | ||
+ | ljCmJvpez+QclI6YhOY4LwNoIca/ | ||
+ | qXY6oMl/ | ||
+ | d2wZS3MSrtfBEDkMUAnJMAnEaC2HrdUuAVTreh// | ||
+ | QSkxa/ | ||
+ | qWfqk/ | ||
+ | CVz+QTwmYVPPVp1o5FPPRMfxynTOCTjrATgOAG4hAF41fc/ | ||
+ | GCALSVAeQhSWxvfg1YOs8vv5Yf8+ssM3Zq7zr4eCefhmrVLX21t8UXjZ8BkQCkyACO4WI\ | ||
+ | xzUzPAUtf9NmnJTcfxsP1/ | ||
+ | WUw305Pwspd9d2reVn+5aYD3tsGSlhiVtlo17hH8TADauQC0JQCLgOWv+O503db6y4cP1\ | ||
+ | GbPW1rjc7fXovun4LhpAtrjtATgMFLEjuaFwIpF/ | ||
+ | IIwKUygFwCkMEAvLkk2KkIDd03EcdME5GOkxKAQ0gVO5lp+ln5arBDCw2NeRhHCUAHGcB\ | ||
+ | BtBM7m+kCvOo1LvVb9ueqjo3dM3WxDbRv3TR6AgHIJgCiBOAHAtCVAVi9jE8A77l9I/ | ||
+ | IfrYBtq3Xho1Dj+ZJiMDhRKA79Fe7GZ+CXjnH3wC+Nfn6uO7btDHNtC+9dLIB3GYAGTKA\ | ||
+ | PYhTexung+sWc4ngDWfqo9H3KSPbaB966UR9yPXNAWdUCAB2It0sYd5HvWIFXwCeMdtTY\ | ||
+ | qRN+tjG2jfeumusThEALrIAL4jAD0ZgPdX8gngbbP6+B6TPraB9q2Xbh9DAB4hAMclALv\ | ||
+ | RQexlfoEArOITwNtui4LcM0wf20D71ku3j8YBAtBNBvAtOoq9zc8DazktVbBynfp4zHB9\ | ||
+ | bAPtWy9ljcIPpmm4DPkSgG8IgJEB+Pc7fAJgeutD6fPev+hrG2jfeuivI/ | ||
+ | PFK81zgozX8gghl3ToC+03T0QN5EoCdBKAPA7DOz+VqmuSdht+JfaZH0RPHJAA7kCn2NT\ | ||
+ | 8HrH8/ | ||
+ | TvNfQLHxHAHrJALahs9jfPKcJAC8RgD2mmeiNIxKArwjAgCYA/ | ||
+ | gJ8IwG4aAVfII2AruhCA2cDnZqCqgX6LvbEoMgoYMpQAPE4AHCNgCwEYuHo6kJcLFOT7X\ | ||
+ | UeT6lFqeyAtE9+Oeg5GeQRsQVfROGYQYob2B77aBJQ10KUE/ | ||
+ | A5ArqJcShHr5fHA+3aSG/ | ||
+ | 9NyDsuj5AQjwg+LksS5Mk2axA0W+wffk18t/ | ||
+ | pfegO17Ban/ | ||
+ | V5GyUY/ | ||
+ | wkHUbQfpQawGa6BsRRwmMdAFjiYwhCFO1HsXfuRducr2CtlXxH4m2O2qVTrqZYVQl2P4b\ | ||
+ | zHEtujSPJyjKbAx4c56CA5BmAbC1bCqqkwxkhHN1DCcTm8ZxBAcXg9OOA4gmEEkC5QFmM\ | ||
+ | tGfygh2CBIBNQX1wWL4N7VZIiRdi7AAq7cmXAEgjAZE1tUeAs8fDXqPVmeDaiXb1HzmxB\ | ||
+ | mc53EaFVdFnlaMAimMoANiciXedERSf6t6uPmdwerW6Jd7zvkERmdzVao0I5UhgjawMs/ | ||
+ | d8lngp+WyLpBEQa+uDQ/ | ||
+ | JrwsEnDbwAAwKAAaop6raEOCWfHnSqmtqUU4r8r5B0asNbnauY6gA1DsaHABs1eGO5DMI\ | ||
+ | 4U4Ap5FwajD29mKmyc+i8+j+iH4+CUWU8ArFCJABVLmIquZ7adpgdOoaAdY6ki+Dcrmsa\ | ||
+ | wTJ1xDl9OYJgq1WwtU9F249WN2rlcdQJd0TBOV518/ | ||
+ | nbUDVrBg4uZ3G1oi1hBXrO7YDwrET8JsSjhK3kYR8BbBoysBEgwMMF1+Do5fX1flcCrbW\ | ||
+ | mK3iwhSrZ6vPqYxm8OnE2j0mv/ | ||
+ | EpEP2/ | ||
+ | t7fXF6Kmvw9KH3/ | ||
+ | xS5STK3nLLALARwWkV65ATm0bYbzsZAPvbm/ | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | On utilise ici l' | ||
+ | |||
+ | Il ne reste plus qu'à reprendre le texte par copier-coller pour le mettre dans le code source du programme en question. | ||
===== Affichage de l' | ===== Affichage de l' | ||
+ | Voilà la fonction qui permettra d' | ||
+ | |||
+ | <code python> | ||
+ | """ | ||
+ | pixmap = QtGui.QPixmap() | ||
+ | chbin = base64.b64decode(ch64.encode(' | ||
+ | pixmap.loadFromData(chbin) | ||
+ | return QtGui.QIcon(pixmap) | ||
+ | |||
+ | icone = source2icone(icone64) | ||
+ | </ | ||
+ | |||
+ | Il ne reste plus qu'à utiliser l' | ||