qtablewidget set horizontal header lable editable for added lines
up vote
1
down vote
favorite
How can I edit the label of a horizontal header in a qtablewidget for an added row by double clicking on it? I got the code from here and adjusted it, but it will not change the name of the added column.
I am using python 3.6 and pyqt5.
from PyQt5 import QtWidgets
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column', self)
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout()
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
self.setLayout(layout)
def changeHorizontalHeader(self, index):
oldHeader = self.table.horizontalHeaderItem(index).text()
newHeader, okPressed = QInputDialog.getText(self,' Change header label for column %d', "Your name:", QLineEdit.Normal, oldHeader)
if okPressed:
self.table.horizontalHeaderItem(index).setText(newHeader)
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
python python-3.x pyqt pyqt5 qtablewidget
add a comment |
up vote
1
down vote
favorite
How can I edit the label of a horizontal header in a qtablewidget for an added row by double clicking on it? I got the code from here and adjusted it, but it will not change the name of the added column.
I am using python 3.6 and pyqt5.
from PyQt5 import QtWidgets
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column', self)
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout()
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
self.setLayout(layout)
def changeHorizontalHeader(self, index):
oldHeader = self.table.horizontalHeaderItem(index).text()
newHeader, okPressed = QInputDialog.getText(self,' Change header label for column %d', "Your name:", QLineEdit.Normal, oldHeader)
if okPressed:
self.table.horizontalHeaderItem(index).setText(newHeader)
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
python python-3.x pyqt pyqt5 qtablewidget
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
How can I edit the label of a horizontal header in a qtablewidget for an added row by double clicking on it? I got the code from here and adjusted it, but it will not change the name of the added column.
I am using python 3.6 and pyqt5.
from PyQt5 import QtWidgets
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column', self)
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout()
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
self.setLayout(layout)
def changeHorizontalHeader(self, index):
oldHeader = self.table.horizontalHeaderItem(index).text()
newHeader, okPressed = QInputDialog.getText(self,' Change header label for column %d', "Your name:", QLineEdit.Normal, oldHeader)
if okPressed:
self.table.horizontalHeaderItem(index).setText(newHeader)
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
python python-3.x pyqt pyqt5 qtablewidget
How can I edit the label of a horizontal header in a qtablewidget for an added row by double clicking on it? I got the code from here and adjusted it, but it will not change the name of the added column.
I am using python 3.6 and pyqt5.
from PyQt5 import QtWidgets
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column', self)
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout()
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
self.setLayout(layout)
def changeHorizontalHeader(self, index):
oldHeader = self.table.horizontalHeaderItem(index).text()
newHeader, okPressed = QInputDialog.getText(self,' Change header label for column %d', "Your name:", QLineEdit.Normal, oldHeader)
if okPressed:
self.table.horizontalHeaderItem(index).setText(newHeader)
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
python python-3.x pyqt pyqt5 qtablewidget
python python-3.x pyqt pyqt5 qtablewidget
edited Nov 23 at 6:21
eyllanesc
69.8k93052
69.8k93052
asked Nov 21 at 12:25
Mady
507
507
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
accepted
When a row or column is added does not imply that the corresponding QTableWidgetItems have been created, only the number of columns is modified in this case, so the new column does not have a QTableWidgetItem in the header, so the solution is to create it if it is necessary.
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column')
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
@QtCore.pyqtSlot(int)
def changeHorizontalHeader(self, index):
it = self.table.horizontalHeaderItem(index)
if it is None:
val = self.table.model().headerData(index, QtCore.Qt.Horizontal)
it = QtWidgets.QTableWidgetItem(str(val))
self.table.setHorizontalHeaderItem(index, it)
oldHeader = it.text()
newHeader, okPressed = QtWidgets.QInputDialog.getText(self,
' Change header label for column %d', "Your name:",
QtWidgets.QLineEdit.Normal, oldHeader)
if okPressed:
it.setText(newHeader)
@QtCore.pyqtSlot()
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
When a row or column is added does not imply that the corresponding QTableWidgetItems have been created, only the number of columns is modified in this case, so the new column does not have a QTableWidgetItem in the header, so the solution is to create it if it is necessary.
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column')
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
@QtCore.pyqtSlot(int)
def changeHorizontalHeader(self, index):
it = self.table.horizontalHeaderItem(index)
if it is None:
val = self.table.model().headerData(index, QtCore.Qt.Horizontal)
it = QtWidgets.QTableWidgetItem(str(val))
self.table.setHorizontalHeaderItem(index, it)
oldHeader = it.text()
newHeader, okPressed = QtWidgets.QInputDialog.getText(self,
' Change header label for column %d', "Your name:",
QtWidgets.QLineEdit.Normal, oldHeader)
if okPressed:
it.setText(newHeader)
@QtCore.pyqtSlot()
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
add a comment |
up vote
2
down vote
accepted
When a row or column is added does not imply that the corresponding QTableWidgetItems have been created, only the number of columns is modified in this case, so the new column does not have a QTableWidgetItem in the header, so the solution is to create it if it is necessary.
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column')
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
@QtCore.pyqtSlot(int)
def changeHorizontalHeader(self, index):
it = self.table.horizontalHeaderItem(index)
if it is None:
val = self.table.model().headerData(index, QtCore.Qt.Horizontal)
it = QtWidgets.QTableWidgetItem(str(val))
self.table.setHorizontalHeaderItem(index, it)
oldHeader = it.text()
newHeader, okPressed = QtWidgets.QInputDialog.getText(self,
' Change header label for column %d', "Your name:",
QtWidgets.QLineEdit.Normal, oldHeader)
if okPressed:
it.setText(newHeader)
@QtCore.pyqtSlot()
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
When a row or column is added does not imply that the corresponding QTableWidgetItems have been created, only the number of columns is modified in this case, so the new column does not have a QTableWidgetItem in the header, so the solution is to create it if it is necessary.
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column')
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
@QtCore.pyqtSlot(int)
def changeHorizontalHeader(self, index):
it = self.table.horizontalHeaderItem(index)
if it is None:
val = self.table.model().headerData(index, QtCore.Qt.Horizontal)
it = QtWidgets.QTableWidgetItem(str(val))
self.table.setHorizontalHeaderItem(index, it)
oldHeader = it.text()
newHeader, okPressed = QtWidgets.QInputDialog.getText(self,
' Change header label for column %d', "Your name:",
QtWidgets.QLineEdit.Normal, oldHeader)
if okPressed:
it.setText(newHeader)
@QtCore.pyqtSlot()
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
When a row or column is added does not imply that the corresponding QTableWidgetItems have been created, only the number of columns is modified in this case, so the new column does not have a QTableWidgetItem in the header, so the solution is to create it if it is necessary.
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.table = QtWidgets.QTableWidget(5,5)
self.table.setHorizontalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.setVerticalHeaderLabels(['1', '2', '3', '4', '5'])
self.table.horizontalHeader().sectionDoubleClicked.connect(self.changeHorizontalHeader)
self.button_add_c = QtWidgets.QPushButton('add column')
self.button_add_c.clicked.connect(self.click_button_add_c)
layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(self.table)
layout.addWidget(self.button_add_c)
@QtCore.pyqtSlot(int)
def changeHorizontalHeader(self, index):
it = self.table.horizontalHeaderItem(index)
if it is None:
val = self.table.model().headerData(index, QtCore.Qt.Horizontal)
it = QtWidgets.QTableWidgetItem(str(val))
self.table.setHorizontalHeaderItem(index, it)
oldHeader = it.text()
newHeader, okPressed = QtWidgets.QInputDialog.getText(self,
' Change header label for column %d', "Your name:",
QtWidgets.QLineEdit.Normal, oldHeader)
if okPressed:
it.setText(newHeader)
@QtCore.pyqtSlot()
def click_button_add_c(self):
culPosition = self.table.columnCount()
self.table.insertColumn(culPosition)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
main = MyWindow()
main.show()
sys.exit(app.exec_())
answered Nov 21 at 13:06
eyllanesc
69.8k93052
69.8k93052
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53411997%2fqtablewidget-set-horizontal-header-lable-editable-for-added-lines%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown