【发布时间】:2018-10-10 20:01:27
【问题描述】:
我有以下填充 QTableWidget 的代码:
def populate_phone_table(self):
dataRows=["Office","Fax","Mobile","Other"]
self.tbl_phone_numbers.setRowCount(4)
self.tbl_phone_numbers.setColumnCount(2)
for ndx,value in enumerate(dataRows):
item = QTableWidgetItem(value)
item.setFlags(Qt.ItemIsEditable)
item.setForeground(QColor(0,0,0))
self.tbl_phone_numbers.setItem(ndx,0,item)
item = QTableWidgetItem("")
self.tbl_phone_numbers.setItem(ndx, 1, item)
self.tbl_phone_numbers.verticalHeader().hide()
self.tbl_phone_numbers.resizeRowsToContents()
self.tbl_phone_numbers.horizontalHeader().setSectionResizeMode(1,QHeaderView.Stretch)
self.tbl_phone_numbers.horizontalHeader().hide()
self.tbl_phone_numbers.itemChanged.connect(self.update_phone_table)
def update_phone_table(self,item):
print(item.text())
item.setForeground(QColor(255,0,0))
我遇到的问题是当我编辑一个列时,连接器被调用了两次。我不确定是信号触发了两次,这是设计还是我没有使用正确的信号。本质上,我需要在编辑 QTableViewItem 时调用(一次)update_phone_table 方法。
【问题讨论】:
标签: python python-3.x pyqt5 qtablewidget