PyQt - 如何阅读文档说明

4
我需要关于如何阅读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

在这种情况下,我应该查看哪些文档以了解有关此点击事件及其发送的索引的信息?非常感谢任何建议。 :)

我不完全理解这个问题。你能否请澄清一下?为什么需要发出任何东西?是否有更多的代码可以让我更好地理解问题的背景? - batbrat
嗨,巴伯。我会尝试更好地表达我的问题。抱歉,我真的是个初学者,不确定如何用恰当的措辞来表述一切。 - Panupat
2个回答

4

很遗憾,PyQt文档并不完整。更好的知识来源是Qt文档

在您的情况下,QTableView继承了QAbstractItemView,而QTableView文档中没有clicked信号,您可以在所有成员列表(包括继承成员)页面找到它。您可以看到,此信号来自QAbstractItemView,并定义为:

void QAbstractItemView::clicked ( const QModelIndex & index )

在这里,您可以看到函数参数的类型(可点击)。

因此,传递给您的函数的index将是QModelIndex的实例,并且它具有row方法。

如果您对C++语法感到困惑,另一种选择是使用更适合Python的PySide文档。

PySide文档中的QAbstractItemView.clicked


哇,那个成员列表页面真棒……你能帮忙解释一下(const QModelIndex & index)吗?这意味着它返回两个值,一个是QModelIndex对象,另一个是索引? - Panupat
1
@Panupat,在C++中,const QModuleIndex & index表示函数接收名为indexQMouduleIndex类型对象作为参数。如果您查看QModelIndex页面,您将找到来自您问题的row方法。学习PyQt的另一个选择是使用PySide文档QAbstractItemView.clicked - reclosedev
谢谢提供 PySide 的链接,我会学习的。:) 不过还是有点好奇,B 函数怎么能接收到 index 呢?clicked 事件先接收它然后再发送过去吗?文档中有解释吗? - Panupat
2
@Panupat,也许你会发现这个文档很有用 新式信号与槽机制 - reclosedev

2
下面的代码将QTableView的clicked信号连接到您的函数。每当有人点击一个项目时,QTableView就会发射clicked信号,这意味着您的函数将自动被调用,因为它连接到了该信号。
listView.clicked.connect(viewItemClicked)

如果您的问题不清楚,请阅读有关Qt中信号槽(signal-slots)的内容。在PyQt中,允许将任何函数(即python可调用函数)连接到信号,而不仅仅是一个槽(如在C++中)。


嗨,Macke。感谢您的回复。我需要一些关于阅读文档的技巧。我修改了我的问题以获得更好的措辞。如果我表达不清楚,请原谅。 - Panupat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接