PyQt - 如何阅读文档
我需要一些关于如何阅读PyQt文档的建议。因为我自己几乎看不懂任何东西。我是个编程新手,所以如果我的问题让你困惑,我很抱歉。我会尽量解释得清楚一些 :)
这是我卡住的一个例子。我在尝试使用QListView,基本上就是想打印出我在视图中选择的数据。结果我卡住了,直到一个非常耐心的Python老师Justin给我展示了这段代码。
listView.clicked.connect(B)
def B(index):
record = sqlmodel.record(index.row())
这段代码把QListView的点击信号连接到了函数B。我很惊讶的是,点击事件会自动把index
传给B。我试着查阅QListView的文档,但找不到任何解释这个的内容。
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qlistview.html
在这种情况下,我应该在文档的哪个地方查找,以了解这个点击事件和它发送的索引呢?
非常感谢任何建议。:)
2 个回答
下面的代码将QTableView的点击信号连接到你的函数。每当有人点击一个项目时,QTableView就会发出clicked信号,这意味着你的函数会自动被调用,因为它和这个信号连接在一起。
listView.clicked.connect(viewItemClicked)
或者我是不是漏掉了你问题中的某些内容?如果上面的内容不太清楚,可以去了解一下Qt中的信号和槽的概念。(在PyQt中,任何函数(也就是可以被调用的Python函数)都可以连接到信号,而不仅仅是槽(在C++中是这样)。
很遗憾,PyQt
的文档并不完整。想要获取更好的知识来源,可以查看 Qt 文档。
在你的情况下,QTableView
是从 QAbstractItemView
继承来的,而在 QTableView
的文档中没有提到 clicked
信号。你可以在 所有成员的列表,包括继承的成员 页面找到它。你会看到,这个信号是来自 QAbstractItemView
的,定义如下:
void QAbstractItemView::clicked ( const QModelIndex & index )
在这里,你可以看到函数参数的类型(可点击的)。
所以,传递给你函数的 index
将是 QModelIndex
的一个实例,并且它有一个 row
方法。
如果你对 C++ 的语法感到困惑,另一个选择是使用 PySide
的文档,它对 Python 用户更友好。