我有一个用日期填充的ListWidget。我还想包含一个不会显示的隐藏值(mysql行ID),但是当我单击一个日期时,我想将隐藏的行ID传递给函数。这样的事情可能吗? 我目前正在使用以下代码来调用我的函数:
self.listWidget_entries.itemClicked.connect(self.get_memo_details)
答案 0 :(得分:0)
它可能看起来像这样:
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class MyWin(QMainWindow):
def __init__(self):
super().__init__()
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
self.rowId = 777 # <---
self.listWidget = QListWidget()
self.listWidget.itemClicked.connect(
lambda it, rowId=self.rowId : self.listWidgetClicked(it, rowId)) # <---
self.layout = QVBoxLayout(centralWidget)
self.createListWidget()
def createListWidget(self):
for it in ["item1", "item2", "item3"]:
self.listWidget.addItem(QListWidgetItem(it))
self.layout.addWidget(self.listWidget)
@pyqtSlot()
def listWidgetClicked(self, item, rowId ): # <---
print('click -> {}, rowId=`{}`'.format(item.text(), rowId))
if __name__=="__main__":
import sys
app = QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())