我试图用SQL表中的值填充qcombobox
,但我得到了
TypeError:addItems(self,Iterable[str](:参数1具有意外的类型"function">
我的代码是
self.building = QComboBox()
self.building.addItems(lambda: self.Buildingcombobox())
和
def Buildingcombobox(self):
conn = pyodbc.connect(<connection>)
cursor = conn.cursor()
cursor.execute("SELECT building, building_id FROM buildings")
rows = cursor.fetchall()
for row in rows:
self.building.addItem(str(row[0]), row[1])
print(row)
conn.commit()
conn.close()
我选择building和building_id是因为我只希望building_id存储在employees表中。
QComboBox()
对象的addItems()
方法需要一个Iterable[Str]参数,而不是一个向小部件添加项的函数。
(对于您引用的SQL,您不需要commit
,因为您不是INSERT
ing、DELETE
ing或UPDATE
ing(。
我将完全删除对addItems()
的调用,并使用您的Buildcombobox
函数(没有commit
(,因为addItem()
调用正在执行您需要的操作。