Exemple #1
0
 def setText(self, text):
     if len(text) == 0: return
     lines = text.split('\n')
     qf = QFontMetrics(self.font)
     fmw = max(qf.maxWidth(), 10)
     nlines = []
     w = self.width - 2 * self.margin
     for line in lines:
         if qf.width(line) > w:
             while qf.width(line) > w:
                 for i in xrange(w / fmw, len(line)):
                     if qf.width(line, i) > w:
                         if line[i].isalnum() and line[i - 1].isalnum():
                             nlines.append(line[0:i - 1] + (
                                 '-' if line[i - 2].isalnum() else ''))
                             line = line[i - 1:]
                         else:
                             nlines.append(line[0:i])
                             line = line[i:]
                         break
             nlines.append(QString(line))
         else:
             nlines.append(QString(line))
     self.__text = nlines
     self.__computeTextPosition()