#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class MyWidget(object): def do(self): try: s = self.string font = QtGui.QFont(u"Racotf04", 12) fm = QtGui.QFontMetrics(font) rect = fm.boundingRect(s) img = QtGui.QImage(rect.width()+1, rect.height(), QtGui.QImage.Format_ARGB32) painter = QtGui.QPainter(img) #painter.begin(img) painter.setFont(font) painter.setBackgroundMode(QtCore.Qt.TransparentMode) #painter.eraseRect(0,0,rect.size().width()+10, rect.size().height()) painter.fillRect(0,0,rect.size().width()+10, rect.size().height(), QtGui.QBrush(QtCore.Qt.transparent)) painter.setBrush(QtGui.QBrush(QtCore.Qt.black)) painter.drawText(0,0,rect.size().width()+10, rect.size().height(), QtCore.Qt.AlignLeft, s) painter.end() img.save("/home/kane/mybad.png", "png") finally: app.quit() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) app.connect(app, QtCore.SIGNAL("lastWindowClosed()"), app, QtCore.SLOT("quit()")) win = MyWidget() win.string = sys.argv[1].decode('utf-8') QtCore.QTimer.singleShot(0, win.do) app.exec_()