Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pyqt5显示选定行中的一个单元格_Python_User Interface_Pyqt5 - Fatal编程技术网

Python 使用pyqt5显示选定行中的一个单元格

Python 使用pyqt5显示选定行中的一个单元格,python,user-interface,pyqt5,Python,User Interface,Pyqt5,我正在尝试用PyQt5创建一个UI,它有一个tableWidget和一个标签,当用户滚动浏览时,该标签将按顺序在表格的每第四列显示文本。 我似乎无法从表中获取所选单元格中的文本。。最接近我的是: def open_csv_in_table (self): f = open ("test.csv") fData = csv.reader(f) csvTable = list(fData) self.tableWidget.setRowCo

我正在尝试用PyQt5创建一个UI,它有一个tableWidget和一个标签,当用户滚动浏览时,该标签将按顺序在表格的每第四列显示文本。 我似乎无法从表中获取所选单元格中的文本。。最接近我的是:

def open_csv_in_table (self):

    f = open ("test.csv")

    fData = csv.reader(f)

    csvTable = list(fData)

    self.tableWidget.setRowCount(len(csvTable))

    self.tableWidget.setColumnCount(len(csvTable[0])-4)

    for line in range( len(csvTable)):

        for row in range(len(csvTable[0])):

            self.tableWidget.setItem(line, row,QtWidgets.QTableWidgetItem(csvTable[line][row]))

    self.tableWidget.setColumnWidth(0 , 10) # ID

    self.tableWidget.setColumnWidth(1 , 150) # TEST NAME

    self.tableWidget.setColumnWidth(2 , 50) # STATUS

    self.tableWidget.setColumnWidth(3 , 300) # REMARKS

    self.tableWidget.setColumnWidth(4 , 737) # LONG DESCRIPTION

def label_display(self):

    self.label.setText(str(self.tableWidget.itemClicked))

    print(str(self.tableWidget.itemClicked))
我正在使用以下命令调用显示功能:

self.open_csv_in_table()          
self.tableWidget.itemClicked.connect (lambda: self.label_display())

itemClicked是一个信号,它没有单击的项目的信息,因此这不是获取该值的方法。信号要做的是通过插槽的参数传递数据,在您的情况下,必须更改为:

def标签显示(自身,项目):
self.label.setText(item.text())


哇,谢谢你,它修好了,如果我能问为什么我不能用lambda来称呼它?@BenPinhas因为这是不必要的,使用lambda方法是不好的做法。我明白了,谢谢你的帮助:)@BenPinhas请回顾一下这个巡演
self.open_csv_in_table()          
self.tableWidget.itemClicked.connect(self.label_display)