本文整理汇总了Python中PyQt4.QtGui.QTextDocument.setTextWidth方法的典型用法代码示例。如果您正苦于以下问题:Python QTextDocument.setTextWidth方法的具体用法?Python QTextDocument.setTextWidth怎么用?Python QTextDocument.setTextWidth使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QTextDocument
的用法示例。
在下文中一共展示了QTextDocument.setTextWidth方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __render_fullname
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def __render_fullname(self, width, index):
fullname = index.data(self.FullnameRole).toPyObject()
doc = QTextDocument()
doc.setHtml("<b>%s</b>" % fullname)
doc.setDefaultFont(FULLNAME_FONT)
doc.setTextWidth(self.__calculate_text_width(width))
return doc
示例2: drawContents
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def drawContents(self, painter):
"""
Reimplementation of drawContents to limit the drawing
inside `textRext`.
"""
painter.setPen(self.__color)
painter.setFont(self.font())
if self.__textRect:
rect = self.__textRect
else:
rect = self.rect().adjusted(5, 5, -5, -5)
if Qt.mightBeRichText(self.__message):
doc = QTextDocument()
doc.setHtml(self.__message)
doc.setTextWidth(rect.width())
cursor = QTextCursor(doc)
cursor.select(QTextCursor.Document)
fmt = QTextBlockFormat()
fmt.setAlignment(self.__alignment)
cursor.mergeBlockFormat(fmt)
painter.save()
painter.translate(rect.topLeft())
doc.drawContents(painter)
painter.restore()
else:
painter.drawText(rect, self.__alignment, self.__message)
示例3: sizeHint
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def sizeHint(self, option, index):
options = QStyleOptionViewItemV4(option)
self.initStyleOption(options,index)
doc = QTextDocument()
doc.setHtml(options.text)
doc.setTextWidth(options.rect.width())
return QtCore.QSize(doc.idealWidth(), doc.size().height())
示例4: sizeHint
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def sizeHint(self, option, index):
optionV4 = QStyleOptionViewItemV4(option)
self.initStyleOption(optionV4, index)
doc = QTextDocument()
doc.setHtml(optionV4.text)
doc.setTextWidth(optionV4.rect.width())
return QSize(doc.idealWidth(), max(doc.size().height(), optionV4.decorationSize.height()))
示例5: sizeHint
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def sizeHint(self, option, index):
"""Calculate the needed size."""
options = QStyleOptionViewItemV4(option)
self.initStyleOption(options, index)
doc = QTextDocument()
doc.setHtml(options.text)
doc.setTextWidth(options.rect.width())
return QSize(doc.idealWidth(), doc.size().height())
示例6: __render_username
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def __render_username(self, width, index):
username_string = index.data(self.UsernameRole).toPyObject()
username = QTextDocument()
if username_string != '':
username.setHtml("<span style='color: #666;'>@%s</span>" % username_string)
else:
username.setHtml("<span style='color: #666;'></span>" % username_string)
username.setDefaultFont(USERNAME_FONT)
username.setTextWidth(self.__calculate_text_width(width))
return username
示例7: __render_status_message
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def __render_status_message(self, width, index):
message = unicode(index.data(self.MessageRole).toPyObject())
urls = index.data(self.URLsEntitiesRole).toPyObject()
for url in urls:
pretty_url = "<a href='%s'>%s</a>" % (url.url, url.display_text)
message = message.replace(url.search_for, pretty_url)
doc = QTextDocument()
doc.setHtml(message)
doc.setTextWidth(self.__calculate_text_width(width))
return doc
示例8: sizeHint
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def sizeHint(self, option1, index):
# option.rect is a zero rect
width = self.parent().columnWidth(index.column())
if index.data(Qt.DisplayRole).type() == QMetaType.Double:
return QSize(width, 18)
option = QStyleOptionViewItemV4(option1)
self.initStyleOption(option, index)
if not option.text:
iconSize = option.icon.actualSize(QSize(32, 32))
return QSize(32, max(32, iconSize.height() + 4))
doc = QTextDocument()
doc.setHtml(option.text)
doc.setTextWidth(self._preferredMessageWidth(width))
return QSize(doc.idealWidth(), max(32, doc.size().height() + 4))
示例9: paint
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
def paint(self, painter, option, index):
painter.save()
cell_width = self.size.width()
#if option.state & QStyle.State_Selected:
# painter.fillRect(option.rect, option.palette.highlight())
#painter.drawRect(option.rect)
# Draw marks before translating painter
# =====================================
# Draw avatar
if not self.avatar:
avatar_filepath = index.data(self.AvatarRole).toPyObject()
self.avatar = QPixmap(avatar_filepath)
x = option.rect.left() + (self.BOX_MARGIN * 2)
y = option.rect.top() + (self.BOX_MARGIN * 2)
rect = QRect(x, y, self.AVATAR_SIZE, self.AVATAR_SIZE)
painter.drawPixmap(rect, self.avatar)
# Draw verified account icon
if index.data(self.VerifiedRole).toPyObject():
rect2 = QRect(rect.right() - 11, rect.bottom() - 10, 16, 16)
painter.drawPixmap(rect2, self.verified_icon)
marks_margin = 0
# Favorite mark
if index.data(self.FavoritedRole).toPyObject():
x = cell_width - 16 - self.BOX_MARGIN
y = option.rect.top() + self.BOX_MARGIN
rect = QRect(x, y, 16, 16)
painter.drawPixmap(rect, self.favorite_icon)
marks_margin = 16
# Draw reposted icon
if index.data(self.RepeatedRole).toPyObject():
x = cell_width - 16 - self.BOX_MARGIN - marks_margin
y = option.rect.top() + self.BOX_MARGIN
rect = QRect(x, y, 16, 16)
painter.drawPixmap(rect, self.repeated_icon)
# Draw protected account icon
protected_icon_margin = 0
if index.data(self.ProtectedRole).toPyObject():
x = option.rect.left() + self.BOX_MARGIN + self.AVATAR_SIZE + self.LEFT_MESSAGE_MARGIN
y = option.rect.top() + self.BOX_MARGIN
rect = QRect(x, y, 16, 16)
painter.drawPixmap(rect, self.protected_icon)
protected_icon_margin = 16
# ==== End of pixmap drawing ====
accumulated_height = 0
# Draw fullname
fullname = self.__render_fullname(cell_width, index)
x = option.rect.left() + self.BOX_MARGIN + self.AVATAR_SIZE
x += self.LEFT_MESSAGE_MARGIN + protected_icon_margin
y = option.rect.top()
painter.translate(x, y)
fullname.drawContents(painter)
# Draw username
username = self.__render_username(cell_width, index)
painter.translate(fullname.idealWidth(), 0)
username.drawContents(painter)
# Draw status message
x = -fullname.idealWidth() - protected_icon_margin
y = fullname.size().height() + self.TOP_MESSAGE_MARGIN
painter.translate(x, y)
message = self.__render_status_message(cell_width, index)
message.drawContents(painter)
accumulated_height += y + message.size().height()
# Draw reposted by
x = self.BOX_MARGIN + 16 - (self.LEFT_MESSAGE_MARGIN + self.AVATAR_SIZE)
y = message.size().height() + self.BOTTOM_MESSAGE_MARGIN
if accumulated_height < self.AVATAR_SIZE:
y += (self.AVATAR_SIZE - accumulated_height) + self.COMPLEMENT_HEIGHT
painter.translate(x, y)
reposted_by = index.data(self.RepostedRole).toPyObject()
if reposted_by:
reposted = QTextDocument()
reposted.setHtml("<span style='color: #999;'>%s</span>" % reposted_by)
reposted.setDefaultFont(FOOTER_FONT)
reposted.setTextWidth(self.__calculate_text_width(cell_width))
reposted.drawContents(painter)
# Draw reposted icon
rect2 = QRect(-16, 3, 16, 16)
painter.drawPixmap(rect2, self.reposted_icon)
# Draw datetime
datetime = index.data(self.DateRole).toPyObject()
timestamp = QTextDocument()
timestamp.setHtml("<span style='color: #999;'>%s</span>" % datetime)
#.........这里部分代码省略.........
示例10: MessageItemDelegate
# 需要导入模块: from PyQt4.QtGui import QTextDocument [as 别名]
# 或者: from PyQt4.QtGui.QTextDocument import setTextWidth [as 别名]
#.........这里部分代码省略.........
rtime, _ok = modelIndex.data(Qt.DisplayRole).toDouble()
timeString = formatTime(localtime(rtime))
painter.save()
painter.setRenderHint(QPainter.Antialiasing)
painter.translate(textRect.topLeft())
painter.setFont(self._timeFont)
textWidth = painter.fontMetrics().width(timeString)
painter.drawText((textRect.size().width() - textWidth) / 2, 13, timeString)
painter.restore()
def paint(self, painter, option1, modelIndex):
if self._column is not None and modelIndex.column() != self._column:
return super(MessageItemDelegate, self).paint(painter, option1, modelIndex)
option = QStyleOptionViewItemV4(option1)
self.initStyleOption(option, modelIndex)
if modelIndex.data(Qt.DisplayRole).type() == QMetaType.Double:
# this is a time item
self._paintTime(painter, option, modelIndex)
return
text = QString(option.text)
if not text:
option1.decorationAlignment = Qt.AlignLeft
return super(MessageItemDelegate, self).paint(painter, option1, modelIndex)
rightAligned = modelIndex.data(ChatMessagesModel.OWN_MESSAGE_ROLE).toBool()
selected = (int(option.state) & int(QStyle.State_Selected)) != 0
editing = self._editIndex == modelIndex
self.document.setHtml(text)
self.document.setTextWidth(self._preferredMessageWidth(option.rect.width()))
ctx = QAbstractTextDocumentLayout.PaintContext()
# Highlighting text if item is selected
if selected:
ctx.palette.setColor(QPalette.Text, option.palette.color(QPalette.Active, QPalette.HighlightedText))
# total rect for us to paint in
textRect = option.rect
# final rect to paint message in
messageRect = self._getMessageRect(option, self.document, modelIndex)
painter.save()
mouseOver = (int(option.state) & int(QStyle.State_MouseOver)) != 0
if mouseOver:
self.mouseOverDocument = QTextDocument()
self.mouseOverDocument.setHtml(text)
self.mouseOverDocument.setTextWidth(self._preferredMessageWidth(option.rect.width()))
self.mouseOverDocumentRow = modelIndex.row()
self.lastTextPos = textRect.topLeft()
self.mouseOverOption = option
# draw decoration
painter.translate(textRect.topLeft())
statusIcon = modelIndex.data(ChatMessagesModel.STATUS_ICON_ROLE)
if statusIcon != None and not statusIcon.isNull():
statusIcon = QIcon(statusIcon)
if rightAligned:
statusIcon.paint(painter, textRect.size().width() - 19, 8, 16, 16, Qt.AlignCenter)
else:
statusIcon.paint(painter, 3, 8, 16, 16, Qt.AlignCenter)