I'm a beginner with QT Python and I'm trying to run a small program to display a table view with a push button beside each row. I've tried the code shown below but I'm getting the following errors:
Traceback (most recent call last):
File "/Users/Programs/bottone.py", line 42, in <module>
mainwindow = MainWindow()
File "/Users/Programs/bottone.py", line 29, in __init__
self.btn_sell = IndexedButtonWidget('Edit')
File "/Users/Programs/bottone.py", line 8, in __init__
super(QPushButton, self).__init__(parent=parent)
TypeError: arguments did not match any overloaded call:
QPushButton(parent: QWidget = None): argument 'parent' has unexpected type 'str'
QPushButton(str, parent: QWidget = None): not enough arguments
QPushButton(QIcon, str, parent: QWidget = None): not enough arguments
Code:
class IndexedButtonWidget(QPushButton):
def __init__(self, parent=None):
super(QPushButton, self).__init__(parent=parent)
self.button_row = 0
self.button_column = 0
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self,parent)
self.table = QtWidgets.QTableWidget()
self.table.setColumnCount(3)
self.setCentralWidget(self.table)
data1 = ['row1','row2','row3','row4']
data2 = ['1','2.0','3.00000001','3.9999999']
self.table.setRowCount(4)
for index in range(4):
item1 = QtWidgets.QTableWidgetItem(data1[index])
self.table.setItem(index,0,item1)
item2 = QtWidgets.QTableWidgetItem(data2[index])
self.table.setItem(index,1,item2)
self.btn_sell = IndexedButtonWidget('Edit')
self.btn_sell.button_row = index
self.btn_sell.button_column = 2
self.btn_sell.clicked.connect(self.handleButtonClicked)
self.table.setCellWidget(index,2,self.btn_sell)
def handleButtonClicked(self):
button = self.sender()
print(button.button_row)
print(button.button_column)
Do you have any clue about which is the problem?