我有一段代码可以生成一个表,并允许您根据需要输入数据。表格如下所示:
实际输入到表格的内容并不总是温度和电压,而不是每次我通过代码必须去更改列标题时,如果我可以在绘制表格后执行此操作会很好点击它。
我认为这可能会自动完成,因为我可以点击表格并在使用“插入表格”按钮后更改值。
所以我的问题是,如何通过点击来更改列标题?
我的代码如下:
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.table = QtGui.QTableWidget(self)
self.table.setRowCount(0)
self.table.setColumnCount(2)
self.textInput1 = QtGui.QLineEdit()
self.textInput2 = QtGui.QLineEdit()
self.button = QtGui.QPushButton("Insert into table")
self.button.clicked.connect(self.populateTable)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.textInput1)
layout.addWidget(self.textInput2)
layout.addWidget(self.button)
self.table.setHorizontalHeaderLabels(("Temperatures;Voltages").split(";"))
def populateTable(self):
text1 = self.textInput1.text()
text2 = self.textInput2.text()
row = self.table.rowCount()
self.table.insertRow(row)
self.table.setItem(row, 0, QtGui.QTableWidgetItem(text1))
self.table.setItem(row, 1, QtGui.QTableWidgetItem(text2))
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(400, 100, 550, 450)
window.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
您可以连接标题sectionDoubleClicked
并使用setText
重命名相关标题。
将标题的sectionDoubleClicked连接到函数:
self.table.horizontalHeader().sectionDoubleClicked.connect(self.renameHeader)
获取新标题的用户输入并重命名:
def renameHeader(self, index):
oldHeader = self.table.horizontalHeaderItem(index).text()
newHeader, confirm = QtGui.QInputDialog.getText(self,
'Rename Header',
'',
QtGui.QLineEdit.Normal,
oldHeader)
if confirm:
self.table.horizontalHeaderItem(index).setText(newHeader)