首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在qlistwidget pyqt4 python中添加带文本的图片?

如何在qlistwidget pyqt4 python中添加带文本的图片?
EN

Stack Overflow用户
提问于 2012-05-02 11:11:58
回答 1查看 5.9K关注 0票数 2

如何在pyqt4 python的qlistwidget中添加带文本的图像/图标?我想添加一个带有文字的图标,就像聊天系统一样。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-02 12:03:03

我现在已经尝试过了,它可以工作,假设您在与此脚本相同的文件夹中有一个名为tick.png的文件。

代码语言:javascript
复制
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QApplication, QDialog, QListWidgetItem, QListWidget, QIcon

def main():

    app = QtGui.QApplication(sys.argv)
    window = QDialog()

    list = QListWidget( window )

    itm = QListWidgetItem( "Tick" );
    itm.setIcon(QIcon(r"tick.png"));
    list.addItem(itm);

    window.show( )
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

类似聊天的图标系统可能与此不同,但目前我还看不到有多个笑脸和文本的QListWidgetItem的方法。

你可能会认为笑脸是QListWidgetItem的一种特殊情况,在这种情况下,文本是空白的,只有图标存在。

另一种解决方案是使用只读QTextEdit作为chatboard,让用户键入文本+图标+文本(等等)。在单独的可编辑QTextEdit中。然后,当他按下发送按钮时,将他输入的所有内容附加到只读QTextEdit。

代码语言:javascript
复制
import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QApplication, QDialog, QListWidgetItem, QListWidget, QIcon, QTextEdit, QTextDocumentFragment

def main():

    app = QtGui.QApplication(sys.argv)
    window = QDialog()

    list = QListWidget( window )

    textEditor = QTextEdit( window );
    textEditor.setReadOnly( True )
    tick_icon = QTextDocumentFragment.fromHtml(r"<img src='tick.png'>");

    textEditor.insertPlainText ( " ValiumKnight writes: " )
    textEditor.textCursor().insertFragment(tick_icon);
    textEditor.insertPlainText ( " Hello World " )
    textEditor.textCursor().insertFragment(tick_icon);
    textEditor.textCursor().insertFragment(tick_icon);
    textEditor.textCursor().insertFragment(tick_icon);

    window.show( )
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

再见!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10407230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档