2012-02-16 4 views
3

목록 위젯에서 함수를 클릭 할 때마다 특정 함수가 실행됩니다. 이제 해당 함수의 매개 변수로 항목 자체를 보내려고합니다. listWidget에서 선택한 항목을 다른 함수에 매개 변수로 보내는 방법

QtCore.QObject.connect(self.listWidget, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.test) 

def test(self): 
    print 'hello' 

가 대신 내가 원하는 : -이 매개 변수로 클릭 QListWidgetItem를 전송 방출 ​​될 때 itemClicked 이미 작업을해야

def test(self,item): 
     print item 

답변

10

여기에 코드입니다. test 함수를 수정하여 추가 매개 변수를 허용하면 QListWidgetItem이됩니다.

from PyQt4.QtCore import QCoreApplication, Qt 
from PyQt4.QtGui import QListWidget, QListWidgetItem, QApplication 

import sys 

class MyList(QListWidget): 
    def __init__(self): 
     QListWidget.__init__(self) 
     self.add_items() 
     self.itemClicked.connect(self.item_click) 

    def add_items(self): 
     for item_text in ['item1', 'item2', 'item3']: 
      item = QListWidgetItem(item_text) 
      self.addItem(item) 

    def item_click(self, item): 
     print item, str(item.text()) 

if __name__ == '__main__': 
    app = QApplication([]) 
    myList = MyList() 
    myList.show() 
    sys.exit(app.exec_()) 

위의 예에서 세 가지 항목이있는 QListWidget이 표시됩니다. 항목을 클릭하면 해당 항목의 텍스트와 함께 항목이 콘솔에 인쇄됩니다.

+0

답장을 보내 주셔서 감사합니다. TextEdit에서 다른 줄에 다른 색상 (2 개)을 지정할 수 있습니까? 예 : BLACK, GRAY. 각 행마다 다른 색이 있습니다. – Jack

+0

QTextEdit의 경우? 주제를 계속 유지하고 동일한 질문이있는 다른 사람들이 쉽게 찾을 수 있도록 별도의 질문으로 게시하는 것이 가장 좋습니다. QTableWidget에서 다른 색상의 행에 대해 이야기하고 있다면 QTableWidget에서 .setAlternatingRowColors (True)를 호출하여 행의 배경색을 번갈아 볼 수 있습니다. –

관련 문제