2

我正在用 Python 和 PyQt4 编写一个带有插件支持的程序。插件在启动时加载(使用__import__),向 UI 添加元素(即向选项卡小部件添加新选项卡,暴露主类的方法,此时一切正常)。我的问题是信号忽略,即:

from lib.plugin import Plugin
from plugins.dsc.ui import dsc_main

class DSC(Plugin):
    def __init__(self):
        Plugin.__init__(self)

        # Load ui
        self.dsc_widget = QTabWidget()
        self.dsc_ui = dsc_main.Ui_Form()
        self.dsc_ui.setupUi(self.dsc_widget)

        # QWidget form contains a QListWidget, so filling it with
        # something.
        for x in range(0, 100):
            self.dsc_ui.list_widget.addItem(str(x))

        # This isn't working
        self.dsc_ui.list_widget.currentItemChanged.connect(self.show_data)
        # This also isn't working
        self.dsc_ui.list_widget.itemClicked.connect(self.show_data)

    def show_data(self):
        print "WUT?"

我也尝试过 qDebug 而不是 print,但在这里没有效果。我也尝试过通过主窗体线程从 dsc_ui 连接小部件(通过公开一个找到这个名称的子并将其连接到函数的方法),但这也没有效果。

这个问题类似于这个问题但答案中描述的所有内容都已经尝试过了。

有什么我错过的好方法吗?

4

1 回答 1

0

你的 Pugin 类是继承自的QObject吗?如果没有,您必须DSCQObjectfirst 继承并QObject.__init__在您的__init__方法中调用。

于 2013-01-31T08:42:18.397 回答