LINUX.ORG.RU

QLineEdit и QTableWidget

 , , ,


0

1

Всем привет! Возникла такая проблема, никак не могу понять что не так. Есть QTableWidget, в одну из ячеек которой я вставил lineEdit, на него повесил QDoubleValidator и с этим никаких проблем. Но теперь я не могу получить данные, которые я ввожу в lineEdit мой! Получаю так(x,y - это номер столбца и строки, где lineEdit вставлен):

self.tableWidget.item(x,y).tableWidget().text()
Но вываливается ошибка
NoneType object has no attribute tableWiget

Посмотрел,действительно, self.tableWidget.item(x,y) возвращает None. Так как мне получить оттуда данные?

Заранее спасибо!

Я думаю тот самый lineEdit выступает у вас как дочерний элемент для tableWidget, значит вам нужно найти lineEdit как дочерний элемент. Перед этим вам наверно еще надо получить объект, который связан с клеткой вашей таблицы. Его вы уже получаете self.tableWidget.item(x,y), а дальше вы ищите для него дочерние элементы управления(виджеты), а как см. здесь:http://stackoverflow.com/questions/9395535/how-to-get-all-child-components-of...

pylin ★★★★★ ()
Ответ на: комментарий от pylin

Да. создавал его отдельно

itemValue = QtWidgets.QLineEdit()
itemValue.setValidator(QtGui.QDoubleValidator(itemValue))
self.tableWidget.setCellWidget(x,y, itemValue)

Действительно, забыл указать, что создавал отдельно..

aarexer ()
Ответ на: комментарий от aarexer

Ну так, если мне не изменяет память, когда вы прицепляете виджет как дочерний к другому у вас и ссылки на него должны быть обновлены, то есть его уже надо заново найти на родительском виджете, старый объект виджета(тот который вы цепляли к tableWidget ) уже неактуален

pylin ★★★★★ ()
Ответ на: комментарий от pylin

Все,я разобрался, огромнейшее вам спасибо! Ответ на вопрос мой вот:

lineEdits = self.tableWidget.findChildren(QtWidgets.QLineEdit) 
arr.append(lineEdits[i].text())

aarexer ()
Ответ на: комментарий от aarexer

незнаю ка в питоне, но в плюсах, если ставишь виджет через setCellWidget, то и получить его можно через cellWidget

Torvus ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.