我正在用 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 连接小部件(通过公开一个找到这个名称的子并将其连接到函数的方法),但这也没有效果。
这个问题类似于这个问题,但答案中描述的所有内容都已经尝试过了。
有什么我错过的好方法吗?