我需要一些关于如何阅读PyQt文档的建议。因为我自己几乎找不到任何东西。我是一个编程新手,很抱歉,如果我的问题令人困惑。我会尽力解释我能做到的最好:)
这是我陷入困境的一个例子。我正在试验QListView。基本上只是试图打印出我在视图中选择的数据。我陷入困境,直到Justin,一位非常耐心的Python导师,给我看了这段代码。
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
在这种情况下,我应该在文档中查看此点击事件及其发出的索引?
非常感谢任何建议。 :)
答案 0 :(得分:4)
不幸的是PyQt
文档未满。更好的知识来源是Qt documentation。
在您的情况下QTableView
继承了QAbstractItemView
,并且clicked
个文档中没有QTableView
信号,您可以在List of all members, including inherited members页面中找到它。你可以看到,这个信号来自QAbstractItemView
,它被定义为:
void QAbstractItemView :: clicked(const QModelIndex& index)
在这里你可以看到函数参数的类型(可点击)。
因此,传递给您的index
函数将是QModelIndex
的实例,并且它具有row
方法。
如果您对C ++语法感到困惑,另一个选择是使用PySide
文档,这是更多 Python友好。
答案 1 :(得分:2)
以下代码将QTableView的点击信号连接到您的功能。每当有人点击某个项目时,QTableView都会点击,这意味着您的功能将被自动调用,因为它已连接到该信号。
listView.clicked.connect(viewItemClicked)
或者我在你的问题中遗漏了什么?如果上述不清楚,请在Qt中读取信号槽。 (PyQt允许任何函数(即python可调用)连接到一个信号,而不仅仅是一个插槽(就像在C ++中一样)。