Python 在QTableWidget中使用QLineEdit作为cellWidget的PyQt

Python 在QTableWidget中使用QLineEdit作为cellWidget的PyQt,python,pyqt4,Python,Pyqt4,因此,我创建了一个QTableWidget,其中填充了qcombox和QLineEdits。我的QComboxes工作得非常好,但是我的QLineEdits由于任何原因都不能正确显示文本 self.table = QtGui.QTableWidget() tableItem = QtGui.QLineEdit( ) tableItem.setText( "Testing" ) self.table.setCellWidget(row, 1, tableItem ) 现在我试着测试它,看看

因此,我创建了一个QTableWidget,其中填充了qcombox和QLineEdits。我的QComboxes工作得非常好,但是我的QLineEdits由于任何原因都不能正确显示文本

self.table = QtGui.QTableWidget()  
tableItem = QtGui.QLineEdit(  )
tableItem.setText( "Testing" )
self.table.setCellWidget(row, 1, tableItem )
现在我试着测试它,看看值是否驻留在表中……如果我使用tableItem.text(),肯定会得到“测试”结果。我只是不知道为什么运行UI时lineEdit什么也不显示


谢谢

下面是一个简单的示例,QLineEdit工作正常

from PyQt4 import QtCore, QtGui
import sys

app = QtGui.QApplication([])
table = QtGui.QTableWidget(2,2)

tableItem = QtGui.QLineEdit()
tableItem.setText( "Testing" )
table.setCellWidget(0, 0, tableItem )

comboBox = QtGui.QComboBox()
table.setCellWidget(1,1, comboBox)

table.show()
sys.exit(app.exec_())
基本上,我所做的改变就是给桌子一个尺寸。您可以像我一样在创建时这样做,也可以使用
table.setRowCount()


当然,对于包含r行的表,请确保没有在r行插入任何内容。它从0到r-1。

下面是一个简单的示例,QLineEdit工作正常

from PyQt4 import QtCore, QtGui
import sys

app = QtGui.QApplication([])
table = QtGui.QTableWidget(2,2)

tableItem = QtGui.QLineEdit()
tableItem.setText( "Testing" )
table.setCellWidget(0, 0, tableItem )

comboBox = QtGui.QComboBox()
table.setCellWidget(1,1, comboBox)

table.show()
sys.exit(app.exec_())
基本上,我所做的改变就是给桌子一个尺寸。您可以像我一样在创建时这样做,也可以使用
table.setRowCount()


当然,对于包含r行的表,请确保没有在r行插入任何内容。它从0到r-1。

Hmm…我已经做了setRowCount()和setColumnCount(),但它仍然不能帮助QLineEdit显示。我以前经常使用QLineEdit,我只是想知道这是否是我没有看到的愚蠢的东西。您确定
的值正确吗?您的代码示例是否在for循环中?如果我的示例适用于您,但无法解决您的情况,那么您可能应该提供更多的代码/上下文。是的,我让它打印了行,并且值是正确的。在进一步查看我的代码之后,我意识到我应该查询表以获取我的值,而不是我的变量。因此,我添加了几行代码,现在我意识到我的item.text()返回为非类型。self.table=QtGui.QTableWidget()tableItem=QtGui.QLineEdit()tableItem.setText(“测试”)self.table.setCellWidget(行,1,tableItem)item=self.table.item(行,1)print'----我愚蠢的项目是------print row print item.text()嗯……我已经做了setRowCount()和setColumnCount(),但它仍然不能帮助QLineEdit显示。我以前经常使用QLineEdit,我只是想知道这是否是我没有看到的愚蠢的东西。您确定
的值正确吗?您的代码示例是否在for循环中?如果我的示例适用于您,但无法解决您的情况,那么您可能应该提供更多的代码/上下文。是的,我让它打印了行,并且值是正确的。在进一步查看我的代码之后,我意识到我应该查询表以获取我的值,而不是我的变量。因此,我添加了几行代码,现在我意识到我的item.text()返回为非类型。self.table=QtGui.QTableWidget()tableItem=QtGui.QLineEdit()tableItem.setText(“测试”)self.table.setCellWidget(行,1,tableItem)item=self.table.item(行,1)print'----我的笨项是------print row print item.text()