Поставил таймер на обновления таблицы, при клике на checkbox, в консоле выдает столько копий, сколько обновилась таблица, как сделать, чтоб выдавала одну копию при клике. Спасибо
from PyQt5.QtCore import QTimer, QTime
from PyQt5.QtWidgets import QApplication, QTableWidgetItem, QTableWidget, QHBoxLayout, QWidget
class App(QWidget):
def __init__(self):
super().__init__()
self.thread = None
self.layout = QHBoxLayout(self)
self.layout.setSpacing(0)
self.table = QTableWidget(self)
self.layout.addWidget(self.table)
self.table.setColumnCount(5)
self.table.setRowCount(5)
self.timer = QTimer()
self.timer.timeout.connect(self.row)
self.timer.start(5000)
def row(self):
time = QTime.currentTime()
text = time.toString('mm:ss')
print("update table...." + time.toString('mm:ss'))
for row in range(5):
item_0 = QTableWidgetItem()
item_0.setText(text)
self.table.setItem(row, 0, item_0)
item_1 = QTableWidgetItem()
item_1.setText(text)
self.table.setItem(row, 1, item_1)
item_2 = QTableWidgetItem()
item_2.setText(text)
self.table.setItem(row, 2, item_2)
item_3 = QTableWidgetItem()
item_3.setText(text)
item_3.setCheckState(0)
self.table.setItem(row, 3, item_3)
self.table.itemClicked.connect(self.item_clicked)
def item_clicked(self, item):
obj = self.table.item(item.row(), 1)
print(obj.text(), item.checkState())
if __name__ == '__main__':
qApp = QApplication([])
app = App()
app.resize(600, 200)
app.show()
qApp.exec()