2012-05-02 1 views
1

pyqt4 python의 qlistwidget에 이미지/아이콘을 추가하는 방법은 무엇입니까? 채팅 시스템처럼 텍스트 아이콘을 추가하고 싶습니다. 감사합니다qlistwidget pyqt4 python에서 텍스트가있는 이미지를 추가하는 방법은 무엇입니까?

+0

['QListWidgetItem'] (http://qt-project.org/doc/qt-4.8/qlistwidgetitem.html#QListWidgetItem-3)에는 아이콘이있을 수 있습니다. 뭐가 문제 야? – Avaris

+0

텍스트 앞뒤에 아이콘을 추가하고 싶습니다. 가능한가? – unice

답변

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을 할 수있는 방법을 볼 수 없습니다.

smileys는 텍스트가 비어 있고 아이콘 만있는 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() 

안녕!

+0

내 유일한 문제는 아이콘 양식 텍스트를 분리하는 방법입니다. 답변 해주셔서 감사합니다. – unice

+0

도움이 되었기 때문에 기쁩니다. 지금 가지고있는 문제의 예를 들어 줄 수 있습니까? 좀 더 도움을 주려고합니다. –

+0

텍스트 편집기를 사용했습니다. 예를 들어 나는 "thanks :)"라는 메시지를 가지고있다. 텍스트와 아이콘 삽입은 별도의 기능이므로 :) 아이콘 또는 텍스트로 삽입됩니다 어떻게 알 수 있습니다. 또는 어떻게 삽입 아이콘 또는 텍스트 기능에 대한 메시지를 파싱합니까. 감사합니다 @ValiumKnight – unice