2

次のように定義されている pyqtgraph Combobox があります。

def __init__(self):
    # some other stuff....

    mylist=OrderedDict()
    mylist['1k'] = 1
    mylist['10k'] = 10
    mylist['100k'] = 100
    mylist['1M'] = 1000
    self.myselectorA = ComboBox()
    self.myselectorA.setItems(mylist)
    self.myselectorA.currentIndexChanged.connect(self.selchangedA)

def selchangedA(self):
    self.sq.setA(self.myselectorA.value())
    if self.sq.gainlink:
        self.sq.setB(100./self.myselectorA.value())
        self.viewupdate = True
        self.myselectorB.setValue(100./self.myselectorA.value())
        self.viewupdate = False

添付されたコールバック関数selchangedAは、2 番目のコンボボックス ( ) のオプションの更新を含むいくつかのことを行いますmyselectorB。この更新は、さらなる変数に依存していますgainlink

コンボボックス内の同じ要素の再選択を検出して、セカンダリコンボボックスを更新できるようにする必要がある状況があります。これは可能ですか?

ユーザーはセカンダリ コンボボックスで適切な値を選択する必要があることは理解していますが、ユーザーには最大限の柔軟性が必要です。

4

1 に答える 1

4

代わりにcurrentIndexChanged(int)、信号activated(int)(選択が変更されなかったが要素が選択された場合にも出力される) を に接続できますselchangedA(self, int)。それに加えて、コンボボックスの現在のインデックスを別の変数に保存しselchangedA、値が以前と同じかどうかをチェックインして、それに応じて動作させることができます。

于 2014-09-17T12:11:37.977 に答える