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?"

print の代わりに qDebug も試しましたが、ここでは効果がありません。また、dsc_ui からメイン フォーム スレッドを介してウィジェットを接続しようとしましたが (この名前の子を見つけて関数に接続するメソッドを公開することによって)、これも効果がありませんでした。

この質問はこれと似ていますが、回答に記載されているものはすべて既に試しています。

私が逃した良い方法はありますか?

4

1 に答える 1

0

あなたのPuginクラスはから継承されていQObjectますか?DSCそうでない場合は、最初から継承し、メソッドでQObjectを呼び出す必要があります。QObject.__init____init__

于 2013-01-31T08:42:18.397 に答える