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
68.7k93052
68.7k93052
asked Nov 21 at 12:25
Mady
506
506
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
68.7k93052
68.7k93052
add a comment |
add a comment |
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