2012-01-22 88 views
2

我需要一些关于如何阅读PyQt文档的建议。因为依靠我自己,我几乎找不到任何东西。如果我的问题很混乱,我是一个编程新手,非常抱歉。我会尽力解释最好的,我可以:)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

我不完全理解这个问题。你能澄清一下吗?为什么你需要发射任何东西。是否有更多的代码可以让我更好地理解问题的背景? – batbrat

+0

嗨理发师。我会尽量让我的问题更好一点。对不起,我真的是一个初学者,不知道如何说一切。 – Panupat

回答

4

不幸PyQt文档不是满的。对知识更好的来源是Qt documentation

在你的情况QTableView继承QAbstractItemView,并且在QTableView文档没有clicked信号,你可以找到它在List of all members, including inherited members页面,你可以看到,这个信号来自QAbstractItemView,它的定义为:

无效QAbstrac tItemView ::点击(常量QModelIndex &指数)

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

那么,index传递给你的函数将会是QModelIndex的实例,它有row方法。

如果您对C++语法感到困惑,另一种选择是使用PySide文档,这是更容易Python友好的

QAbstractItemView.clicked in PySide docs

+0

哇成员页面列表很棒。 。 。你能帮忙解释一下(const QModelIndex&index)吗?这意味着它返回2个值,一个QModelIndex对象和另一个索引? – Panupat

+1

@Panupat,在C++中'const QModuleIndex&index'表示函数接收'QMouduleIndex'类型的对象,名为'index'作为参数。如果你看看'QModelIndex'页面,你可以从你的问题中找到'row'方法。学习'PyQt'的另一个选择是使用'PySide'文档[QAbstractItemView.clicked](http://www.pyside.org/docs/pyside/PySide/QtGui/QAbstractItemView.html#PySide.QtGui.PySide.QtGui.QAbstractItemView 。点击) – reclosedev

+0

感谢PySide链接。我会研究它。 :)还好奇tho,函数B怎么也能收到'index'?点击事件接收它,然后发送它?文档中是否有解释这个的地方? – Panupat

2

以下代码将QTableView的点击信号连接到您的函数。只要有人点击一个项目,QTableView就会发出点击,这意味着你的函数将被自动调用,因为它连接到该信号。

listView.clicked.connect(viewItemClicked) 

或者我错过了你的问题中的东西?如果上述内容不清楚,请阅读Qt中的信号插槽。 (PyQt的允许任何功能(即蟒可调用)将被连接到一个信号,而不是仅仅一个时隙(因为它是在C++)。

+0

嗨麦克。感谢您的答复。我需要一些关于阅读文档的提示。我编辑我的问题更好的措辞。对不起,如果我不清楚。 – Panupat