从 Pyqt4 中的 QtableWidget 中的 QlineEdit 检索值 Python
retrieve value from QlineEdit inside QtableWidget in Pyqt4 Python
我在检索在 QWidgetlineEdit 框中输入时遇到问题。
获得相同的 C++ 实现但无法使用 Python、
检索
self.line = QtGui.QLineEdit()
i =0
while(i<self.tableWidget.rowCount()):
self.q = (QtGui.QLineEdit()).self.tableWidget.cellWidget(i, 1)
j = self.line.text()
print j
i +=1
C++ 中的工作代码:
QLineEdit* tmpLineEdit;
QString tmpString;
for(int row=0; row < moneyTableWidget.rowCount(); row++)
{
tmpLineEdit = qobject_cast<QLineEdit *>(moneyTableWidget.cellWidget(row,1));
tmpString = tmpLineEdit->text();
}
首先,您使用 C++ 提供的代码是危险的,因为没有人保证返回的 cellWidget 是 QLineEdit,因此验证改进了代码:
QString tmpString;
for(int row=0; row < moneyTableWidget.rowCount(); row++)
{
if(QLineEdit * tmpLineEdit = qobject_cast<QLineEdit *>(moneyTableWidget.cellWidget(row,1)))
tmpString = tmpLineEdit->text();
}
在 python 的情况下,没有必要进行转换,但您必须使用 isinstance()
:[=13 验证 returns cellWidget 是 QLineEdit 的小部件=]
tmpString = ""
for row in range(self.tableWidget.rowCount()):
widget = self.tableWidget.cellWidget(row, 1)
if isinstance(widget, QtGui.QLineEdit):
tmpString = widget.text()
我在检索在 QWidgetlineEdit 框中输入时遇到问题。 获得相同的 C++ 实现但无法使用 Python、
检索 self.line = QtGui.QLineEdit()
i =0
while(i<self.tableWidget.rowCount()):
self.q = (QtGui.QLineEdit()).self.tableWidget.cellWidget(i, 1)
j = self.line.text()
print j
i +=1
C++ 中的工作代码:
QLineEdit* tmpLineEdit;
QString tmpString;
for(int row=0; row < moneyTableWidget.rowCount(); row++)
{
tmpLineEdit = qobject_cast<QLineEdit *>(moneyTableWidget.cellWidget(row,1));
tmpString = tmpLineEdit->text();
}
首先,您使用 C++ 提供的代码是危险的,因为没有人保证返回的 cellWidget 是 QLineEdit,因此验证改进了代码:
QString tmpString;
for(int row=0; row < moneyTableWidget.rowCount(); row++)
{
if(QLineEdit * tmpLineEdit = qobject_cast<QLineEdit *>(moneyTableWidget.cellWidget(row,1)))
tmpString = tmpLineEdit->text();
}
在 python 的情况下,没有必要进行转换,但您必须使用 isinstance()
:[=13 验证 returns cellWidget 是 QLineEdit 的小部件=]
tmpString = ""
for row in range(self.tableWidget.rowCount()):
widget = self.tableWidget.cellWidget(row, 1)
if isinstance(widget, QtGui.QLineEdit):
tmpString = widget.text()