我对如何使用查询本地 SQLite 数据库后返回的某些属性感到困惑。我可以使用其中一个属性填充 qlistwidget,但是当用户单击 listwidget 项目时,我不知道如何获取其他属性。
以下代码是使用 Eric 创建的,它预先填充了一些信号和插槽
@pyqtSignature("QString")
def on_searchText_textEdited(self, p0):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
self.resultsList.clear()
self.searchItem = self.searchText.text()
self.search()
@pyqtSignature("QListWidgetItem*")
def on_resultsList_itemClicked(self, item):
"""
Slot documentation goes here.
"""
# TODO: not implemented yet
result = str(item.text())
QMessageBox.about(self, "Clicked Item", "%s")%(result)
@pyqtSignature("")
def on_cancelButton_clicked(self):
"""
Slot documentation goes here.
"""
self.close()
def search(self):
conn = sqlite3.connect("C:\\file.sqlite")
cur = conn.cursor()
sqlqry = "SELECT name, number, size FROM lookup WHERE name LIKE '%s' LIMIT 100;"%("%"+self.searchItem+"%")
try:
c = cur.execute(sqlqry)
data = c.fetchall()
for i in data:
self.resultsList.addItem(i[0])
except sqlite3.Error, e:
QMessageBox.about(self, "Error message", "Error")
因此,当用户在行编辑中输入文本时,我的 resultsList 会被填充,但是当用户单击某个项目时,我会收到一个错误消息框,其中包含有关 NoneType 和 str 的信息。
但是,我真正需要使用的是代码中其他地方的第二个和第三个属性。
那么如何通过 itemClicked 信号选择该属性并创建两个新变量呢?
我希望这是有道理的,这是漫长的一天