【问题标题】:PyQt4 problem with xml database browser (treeview, singals and insertplaintext)xml 数据库浏览器的 PyQt4 问题(treeview、singals 和 insertplaintext)
【发布时间】:2011-04-24 03:50:31
【问题描述】:

我正在用 PyQt4 编写一个数据库浏览器应用程序,因为我是 Qt 新手,所以我遇到了一些问题。我已经用 python 编写了大多数功能,但我知道我正在尝试使用 PyQt4 GUI 来实现它们。

首先,我的应用程序现在看起来像这样:
Browser
在这些目录中,我有想要解析的 xml 文件。 我写过这样的东西:

QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.plainTextEdit, QtCore.SLOT("paste()"))

它有效。但是当我尝试做这样的事情时:

QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.plainTextEdit, QtCore.SLOT("insertPlainText('test')"))

它失败。阅读手册后,我知道 SIGNAL 和 SLOT 必须采用相同的参数。所以我应该写一些信号来执行一个 SLOT,它是一个带有 QModelIndex 参数的函数,它找到点击的文件,创建 xmldocument 对象,然后打印出它的字典。
我的问题是:

    如何创建可作为 SLOT 调用的函数?


因为在 ui 文件中我创建了一个函数:

def test(self): print "Debug"

当我试图把它叫出来时

QtCore.QObject.connect(self.ui.treeView, QtCore.SIGNAL("clicked(QModelIndex)"), self.ui.test())

我收到了这个错误:

TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'NoneType'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 2 has unexpected type 'str'


还有一个问题:

    我应该如何从 QModelIndex 获取点击文件的路径?

【问题讨论】:

    标签: python qt qt4 pyqt4


    【解决方案1】:

    考虑使用 PyQt 提供的新型连接机制:

    self.ui.treeView.clicked.connect(self.ui.plainTextEdit.paste)
    

    现在,paste 是一个接受单个参数的方法,该参数属于self.ui.treeView 发送的clicked 信号类型。从那里剖析,如你所愿。


    我怎样才能创建这样一个可作为 SLOT 调用的函数?

    这是一个不同的错误。您连接到self.ui.test(),但这是函数调用,而不是函数。删除test 之后的()。但更好的是,使用如上所述的新型连接机制。


    我应该如何从 QModelIndex 获取点击文件的路径?

    可能通过调用它的data 方法。阅读doc for QModelIndex

    【讨论】:

      猜你喜欢
      • 2011-03-18
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 1970-01-01
      相关资源
      最近更新 更多