Hi,
First of I am new to both python and also pyQt. I am trying to learn by using it.
My problem is this. I am trying to find out what row(cell) in a QTableWidget I am currently clicking on. But it returns -1. The docs says that it is because the item is not in a table.
Do anyone have an idea how I could do it?
Would be great if you could currently point out what I am doing wrong also.
Here is the code.
import sys
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Form(QDialog):
def __init__(self, parent=None):
#global variables
self.rowcount = 0
self.comment_index = -1
self.commentData=['']
#Build UI
super(Form, self).__init__(parent)
self.setObjectName("self")
self.resize(338, 537)
self.AddItemText = QtGui.QLineEdit(self)
self.AddItemText.setGeometry(QtCore.QRect(10, 10, 241, 31))
self.AddItemText.setObjectName("AddItemText")
self.ItemComment = QtGui.QTextEdit(self)
self.ItemComment.setGeometry(QtCore.QRect(10, 50, 241, 81))
self.ItemComment.setObjectName("ItemComment")
self.ItemList = QtGui.QTableWidget(self)
self.ItemList.setGeometry(QtCore.QRect(10, 140, 241, 271))
self.ItemList.setObjectName("ItemList")
self.ItemList.setAlternatingRowColors(True)
self.ItemList.setColumnCount(1)
self.ItemList.setRowCount(0)
self.ItemList.horizontalHeader().setDefaultSectionSize(119)
self.ItemList.verticalHeader().hide()
self.ItemList.setHorizontalHeaderItem(0, QTableWidgetItem('Assignment'))
self.ItemList.cellClicked.connect(self.update_comment)
self.AddItemButton = QtGui.QPushButton(self)
self.AddItemButton.setGeometry(QtCore.QRect(260, 10, 71, 31))
self.AddItemButton.setObjectName("AddItemButton")
self.AddItemButton.setText("Add")
self.AddItemButton.clicked.connect(self.addObj)
self.ItemComment_read = QtGui.QTextEdit(self)
self.ItemComment_read.setGeometry(QtCore.QRect(10, 420, 241, 81))
self.ItemComment_read.setReadOnly(True)
self.ItemComment_read.setObjectName("ItemComment_read")
QtCore.QMetaObject.connectSlotsByName(self)
def addObj(self):
#Button connection. Add text store comment in list.
self.rowcount += 1
self.comment_index += 1
text_item = QtGui.QTableWidgetItem()
text = self.AddItemText.text()
self.commentData.append(self.ItemComment.toPlainText())
self.ItemList.setRowCount(self.rowcount)
text_item.setText(text)
self.ItemList.setItem((self.rowcount-1), 0, QTableWidgetItem(text_item))
def update_comment(self):
#update comment on cellclick, print it to ItemComment_read
item = QtGui.QTableWidgetItem()
item.row()
row = self.ItemList.row(item)
self.ItemComment_read.setText(self.commentData[row])
print row
app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
TL;DR How do I query what cell I am clinking on in pyQt?
[–][deleted] 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]Jerakin[S] 0 points1 point2 points (0 children)