Ну, жаль, что вы не предоставили минимально воспроизводимый пример, тогда я мог бы показать, что вы, возможно, делали неправильно, но вот минималистичная рабочая версия того, что, я думаю, вы пытались выполнить.
from sys import exit as sysExit
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QComboBox, QHBoxLayout, QLabel
class CentralPanel(QWidget):
def __init__(self, parent):
QWidget.__init__(self)
self.Parent = parent
self.cbxHPList = QComboBox()
self.cbxHPList.currentIndexChanged.connect(self.ChangeBDList)
self.cbxBDList = QComboBox()
HBox = QHBoxLayout()
HBox.addWidget(self.cbxHPList)
HBox.addWidget(QLabel(' '))
HBox.addWidget(self.cbxBDList)
HBox.addStretch(1)
self.setLayout(HBox)
def ChangeBDList(self, Index):
self.Parent.UpdateBDList(Index)
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.setWindowTitle('TestIt')
self.resize(100,100)
self.HPList = {0:' ', 1:'HP Address 1', 2:'HP Address 2', 3:'HP Address 3'}
self.BDList1 = [' ', 'First', 'Board1', 'List1']
self.BDList2 = [' ', 'Second', 'Board2', 'List2']
self.BDList3 = [' ', 'Third', 'Board2', 'List3']
self.CenterPane = CentralPanel(self)
self.setCentralWidget(self.CenterPane)
self.SetHome()
def SetHome(self):
self.CenterPane.cbxHPList.clear()
for key in self.HPList.keys():
self.CenterPane.cbxHPList.insertItem(key, self.HPList[key])
def UpdateBDList(self, Index):
ListUsed = []
if Index == 1:
ListUsed = self.BDList1
elif Index == 2:
ListUsed = self.BDList2
elif Index == 3:
ListUsed = self.BDList3
self.CenterPane.cbxBDList.clear()
if len(ListUsed) > 0:
Indx = 0
for Item in ListUsed:
self.CenterPane.cbxBDList.addItem(Item)
Indx += 1
if __name__ == '__main__':
MainThred = QApplication([])
MainGUI = MainWindow()
MainGUI.show()
sysExit(MainThred.exec_())