用SQL值填充QCombox



我试图用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,因为您不是INSERTing、DELETEing或UPDATEing(。

我将完全删除对addItems()的调用,并使用您的Buildcombobox函数(没有commit(,因为addItem()调用正在执行您需要的操作。

相关内容

  • 没有找到相关文章

最新更新