我试图了解qt如何处理这个小部件
item = QtGui.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
item.setFlags(QtCore.Qt.ItemIsDragEnabled | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
self.tableWidget.setItem(0, 0, item)
但是,当我在表中“setItem”项时:
self.ui.tableWidget.setItem(self.i, 0, QtGui.QTableWidgetItem(str(self.dungeonCount[self.i])))
QtCore.Qt.AlignHCenter \ QtCore.Qt.AlignVCenter _ QtCore.Qt.AlignCenter
和
QtCore.Qt.ItemIsDragEnabled \ QtCore.Qt.ItemIsUserCheckable _ QtCore.Qt.ItemIsEnabled
似乎覆盖了。
发布于 2015-06-29 04:38:12
在第一个块中,创建item
,类QTableWidgetItem
的一个实例。您成功地更改了它的对齐和标志。
当您调用setItem(self.i, 0, QtGui.QTableWidgetItem("some text"))
时,您正在创建该类的另一个实例。item
由一个新的QTableWidgetItem
取代,该QTableWidgetItem
具有默认的对齐方式和标志。
您应该跟踪item
并在需要时更改它的文本,如下所示:
self.item = QtGui.QTableWidgetItem()
self.item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
self.tableWidget.setItem(0, 0, self.item)
#and then later
self.item.setText("my new text")
发布于 2015-06-29 07:21:21
setItem
方法在给定的行/列中设置一个全新的项。
如果要修改现有项的文本,请执行以下操作:
item = self.tableWidget.item(self.i, 0)
item.setText(str(self.dungeonCount[self.i]))
https://stackoverflow.com/questions/31094233
复制