Manche GUI-Toolkits können auch Bilder in Formaten wie
X PixMaps direkt aus dem Programm ”konsumieren”. Hier ein Beispiel das ich neulich in
einem anderen Forum gepostet hatte (eine Portierung eines
C++-Beispielprogramms für FLTK nach Python und Qt4):
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
import sys
from PyQt4 import uic
from PyQt4.QtCore import QSize
from PyQt4.QtGui import (
QApplication, QIcon, QListWidgetItem, QMessageBox, QPixmap,
)
CAT_XPM = [
'50 34 4 1',
' c black',
'o c #ff9900',
'@ c #ffffff',
'# c None',
'##################################################',
'### ############################## ####',
'### ooooo ########################### ooooo ####',
'### oo oo ######################### oo oo ####',
'### oo oo ####################### oo oo ####',
'### oo oo ##################### oo oo ####',
'### oo oo ################### oo oo ####',
'### oo oo oo oo ####',
'### oo oo ooooooooooooooo oo oo ####',
'### oo ooooooooooooooooooooo oo ####',
'### oo ooooooooooooooooooooooooooo ooo ####',
'#### oo ooooooo ooooooooooooo ooooooo oo #####',
'#### oo oooooooo ooooooooooooo oooooooo oo #####',
'##### oo oooooooo ooooooooooooo oooooooo oo ######',
'##### o ooooooooooooooooooooooooooooooo o ######',
'###### ooooooooooooooooooooooooooooooooooo #######',
'##### ooooooooo ooooooooo ooooooooo ######',
'##### oooooooo @@@ ooooooo @@@ oooooooo ######',
'##### oooooooo @@@@@ ooooooo @@@@@ oooooooo ######',
'##### oooooooo @@@@@ ooooooo @@@@@ oooooooo ######',
'##### oooooooo @@@ ooooooo @@@ oooooooo ######',
'##### ooooooooo ooooooooo ooooooooo ######',
'###### oooooooooooooo oooooooooooooo #######',
'###### oooooooo@@@@@@@ @@@@@@@oooooooo #######',
'###### ooooooo@@@@@@@@@ @@@@@@@@@ooooooo #######',
'####### ooooo@@@@@@@@@@@ @@@@@@@@@@@ooooo ########',
'######### oo@@@@@@@@@@@@ @@@@@@@@@@@@oo ##########',
'########## o@@@@@@ @@@@@ @@@@@ @@@@@@o ###########',
'########### @@@@@@@ @ @@@@@@@ ############',
'############ @@@@@@@@@@@@@@@@@@@@@ #############',
'############## @@@@@@@@@@@@@@@@@ ###############',
'################ @@@@@@@@@ #################',
'#################### #####################',
'##################################################',
]
def main():
application = QApplication(sys.argv)
window = uic.loadUi('test.ui')
cat_pixmap = QPixmap(CAT_XPM)
# Leave some space for text under the item.
size = cat_pixmap.size() + QSize(0, 20)
window.thumbnails.setIconSize(size)
window.thumbnails.setGridSize(size + QSize(30, 30))
cat_icon = QIcon(cat_pixmap)
for i in xrange(40):
QListWidgetItem(cat_icon, format(i, '04d'), window.thumbnails)
window.thumbnails.itemClicked.connect(
lambda item: QMessageBox.information(
window,
'Title',
"Thumbnail '{}' clicked.".format(item.text()),
)
)
window.show()
sys.exit(application.exec_())
if __name__ == '__main__':
main()