使用 SQL 值填充 QCombobox
Populate QCombobox with SQL Values
我试图用 SQL table 中的值填充 qcombobox
,但我得到
TypeError: addItems(self, Iterable[str]): argument 1 has unexpected type '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_id 因为我只想 building_id 存储在 table 名员工中。
QComboBox()
对象的 addItems()
方法需要一个 Iterable[Str] 参数,而不是向小部件添加项目的函数。
(对于您引用的 SQL,您不需要 commit
因为您不是 INSERT
ing、DELETE
ing 或 UPDATE
ing).
我会完全删除对 addItems()
的调用,并使用您的 Buildcombobox
函数(没有 commit
),因为 addItem()
调用正在执行您需要的操作。
我试图用 SQL table 中的值填充 qcombobox
,但我得到
TypeError: addItems(self, Iterable[str]): argument 1 has unexpected type '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_id 因为我只想 building_id 存储在 table 名员工中。
QComboBox()
对象的 addItems()
方法需要一个 Iterable[Str] 参数,而不是向小部件添加项目的函数。
(对于您引用的 SQL,您不需要 commit
因为您不是 INSERT
ing、DELETE
ing 或 UPDATE
ing).
我会完全删除对 addItems()
的调用,并使用您的 Buildcombobox
函数(没有 commit
),因为 addItem()
调用正在执行您需要的操作。