我有一个分层的两个组合框。第一个组合框显示客户名称列表,即来自 MySQL 数据库的不同公司。每个客户在不同的城市都有分支机构。
然后,当从组合框1 选项列表中选择客户名称时,例如{Aldi, Meyer, Carrefour, WalMart},对于该特定客户,城市/分支机构的列表会自动显示在组合框2 中。类似的东西,例如:
combo1: chosen_customer [Aldi] --> cities:{NY, Boston, Berlin, Tokyo, London} then..
combo2: options {NY, Boston, Berlin, Tokyo, London}
当我们再次选择另一个客户时,问题就出现了,该客户最终拥有较少的分支机构 - 例如
combo1: chosen_customer [Meyer] --> {LA, San Francisco}, then.. we got
combo2: options {LA, San Francisco, Berlin, Tokyo, London}
intead of combo2: options {LA, San Francisco}
这是运行 combo2 的函数,每次从列表 combo1 中选择 customerName 时都会调用该函数:
def loadComboCity(self,customerName):
"""query results cityList into self.mydb.matrix"""
queryName="citylist_thisCustomer"
self.mysqlAPI(queryName,customerName)
id=0
for row in self.mydb.matrix:
cityname=self.mydb.matrix[id][0]
self.addcomboCity(id,cityname)
id=id+1
del self.mydb.matrix[:]
以及添加属于该客户的列表城市的每个名称的函数:
def addcomboCity(self,id,cityname):
self.comboCity.addItem(QtCore.QString())
self.comboCity.setItemText(id, QtGui.QApplication.translate("MainWindow", cityname, None, QtGui.QApplication.UnicodeUTF8))
我们尝试使用 del 清除列表的先前内容,但它仍然得到相同的行为。
这是 Qt 还是 Python 相关的问题?或者我们在这里缺少一些东西?
高度赞赏所有意见和建议。