2012-01-22 10 views
2

PyQt의 설명서를 읽는 방법에 대한 조언이 필요합니다. 혼자서는 아무 것도 알아 내지 못합니다. 나는 프로그래밍상의 초보자이다. 내 질문이 혼란 스럽다면 미안하다. 내가 할 수있는 최선의 것을 설명하려고 노력할 것이다.PyQt - 설명서를 읽는 방법

이것은 내가 붙이게되었던 곳의 예다. 나는 QListView를 실험하고 있었다. 기본적으로보기에서 선택한 데이터를 인쇄하려고합니다. 나는 참을성있는 파이썬 튜터 인 저스틴이 나에게이 코드를 보여줄 때까지 붙어있다.

listView.clicked.connect(B) 
def B(index): 
    record = sqlmodel.record(index.row()) 

그것은 I 바로 클릭 된 이벤트 자체에서 B로 index를 보내는 것은 매우 놀랐다 B. 기능하도록 QListView에서 클릭 신호를 연결한다. 나는 QListView의 문서를 살펴 보았지만 이것을 설명하는 것을 찾을 수 없다. 이 경우

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qlistview.html

, 어디 문서에서 나는 이것에 대해 배울 수 보라는 이벤트를 클릭하고, 인덱스가 발송?

정말 감사하게 생각합니다. :)

+0

이 문제를 완전히 이해하지 못했습니다. 분명히 해줄 수 있니? 왜 아무 것도 방출해야합니까? 질문을 더 잘 이해할 수있는 컨텍스트를 제공하는 코드가 더 있습니까? – batbrat

+0

안녕 이발사. 나는 내 질문에 조금 더 나은 말을하려고 노력할 것이다. 미안하지만, 나는 초보자이며 모든 것을 어떻게 말로 표현할 지 확신하지 못합니다. – Panupat

답변

4

불행하게도 PyQt 문서 전체 아닙니다. 지식에 대한 더 나은 소스가 Qt documentation입니다.

귀하의 경우 QTableView

QAbstractItemView을 상속, 거기 QTableView 문서에는 clicked 신호는 List of all members, including inherited members 페이지에서 찾을 수 있습니다 그리고 당신은이 신호가 QAbstractItemView에서 오는 것을 볼 수 없다과 같이 정의되어 :.

무효 QAbstrac tItemView : 클릭 된 (const를 QModelIndex & 인덱스) 여기

당신이 함수 인수의 유형 (클릭)를 참조 할 수 있습니다.

따라서 사용자에게 전달 된 index의 인스턴스는 QModelIndex이고 인스턴스는 row입니다.

C++ 구문과 혼동하는 경우 PySide 설명서 ()를 사용하는 것이 좋습니다. 자세한 내용은입니다.

QAbstractItemView.clicked in PySide docs

+0

회원 페이지 목록이 멋집니다. . . 당신은 (const QModelIndex & 인덱스) 조금 설명 할 수 있습니까? 두 개의 값, QModelIndex 객체 및 다른 인덱스를 반환한다는 의미입니까? – Panupat

+1

@Panupat, C++에서'const QModuleIndex & index'는'QMouduleIndex' 타입의 객체를 인자로 받는다는 것을 의미합니다. 'QModelIndex' 페이지를 보게되면, 여러분의 질문에서'row' 메소드를 발견하게 될 것입니다. 'PyQt'를 배우기위한 또 다른 옵션은'PySide' 문서 [QAbstractItemView.clicked] (http://www.pyside.org/docs/pyside/PySide/QtGui/QAbstractItemView.html#PySide.QtGui.PySide.QtGui.QAbstractItemView .clicked) – reclosedev

+0

PySide 링크를 제공해 주셔서 감사합니다. 나는 그것을 공부할 것이다. :) 아직도 호기심 tho, 어떻게 함수 B는'인덱스'를받을 수 있습니까? 클릭 된 이벤트는 이벤트를 수신 한 다음이를 전송합니다. 이 점을 설명하는 문서의 어느 부분이 있습니까? – Panupat

2

다음 코드는 QTableView의 클릭 신호를 사용자의 기능에 연결합니다. QTableView는 사용자가 항목을 클릭 할 때마다 클릭됩니다. 즉, 해당 신호에 연결되어 있으므로 함수가 자동으로 호출됩니다.

listView.clicked.connect(viewItemClicked) 

아니면 질문에 뭔가가 있습니까? 위의 내용이 명확하지 않으면 Qt의 신호 슬롯을 읽으십시오. (PyQt는 (즉, 파이썬 호출)는 C에서와 같이 (신호뿐만 아니라 슬롯에 연결되는 ++) 어떤 기능을 할 수 있습니다.

+0

안녕 Macke. 귀하의 회신에 감사드립니다. 문서를 읽는 것에 대한 팁이 필요합니다.더 나은 표현을 위해 제 질문을 수정합니다. 미안하다면 미안해. – Panupat

관련 문제