pyqt4 pythonのqlistwidgetに画像/アイコンを追加するには?私はチャットシステムのようにテキストのアイコンを追加したいと思う。ありがとうqlistwidget pyqt4 pythonにテキスト付きの画像を追加するには?
1
A
答えて
3
このスクリプトと同じフォルダにtick.pngという名前のファイルがあるとします。
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を使用し、ユーザーがそのテキスト+アイコン+テキスト(など)を別の編集可能なQTextEditに入力させることです。次に、送信ボタンを押すと、入力したすべてを読み取り専用QTextEditに追加します。
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()
Bye!
['QListWidgetItem'](http://qt-project.org/doc/qt-4.8/qlistwidgetitem.html#QListWidgetItem-3)はアイコンを持つことができます。どうしたの? – Avaris
テキストの前後にアイコンを追加したい。出来ますか? – unice