PyQt6, QTableView - How can I change the column headings?
Unsolved
Qt for Python
-
Hello,
this is my code:import sys from PyQt6 import QtGui from PyQt6.QtSql import QSqlDatabase, QSqlRelation, QSqlTableModel from PyQt6.QtWidgets import QWidget, QApplication, QFormLayout, QTableView class FensterKlasse(QWidget): def __init__(self): super().__init__() self.table_model = QSqlTableModel() self.table_model.setTable("telefon_verwaltung") self.table_model.select() self.GUI() def GUI(self): self.setWindowTitle("PyQt6 Telefonnummer-Verwaltung mit Datenbank") self.setGeometry(0,0,500,500) qtRectangle = self.frameGeometry() centerPoint = QtGui.QGuiApplication.primaryScreen().availableGeometry().center() qtRectangle.moveCenter(centerPoint) self.move(qtRectangle.topLeft()) self.tabellengrid = QTableView() self.tabellengrid.setModel(self.table_model) self.tabellengrid.setColumnWidth(0,2) self.tabellengrid.setColumnHidden(0,True) self.tabellengrid.setColumnWidth(1, 100) self.tabellengrid.setColumnWidth(2, 150) self.tabellengrid.setColumnWidth(3, 130) formLayout = QFormLayout() formLayout.addRow(self.tabellengrid) self.setLayout(formLayout) def programm_beeden(self): QApplication.instance().quit() app = QApplication([]) db = QSqlDatabase.addDatabase("QSQLITE") db.setDatabaseName("telefonnummern_verwaltung.db") fenster = FensterKlasse() if __name__ == '__main__': fenster.show() sys.exit(app.exec())
Question:
How can I change QTableView's column headings? -
@PythonQTMarlem
You do that at the model side, that is whereQTableView
gets its data from. You could subclassQSqlTableModel
and overrideheaderData()
, or callsetHeaderData()
[without needing to subclass]. Examples at https://stackoverflow.com/questions/64287713/how-can-you-set-header-labels-for-qtableview-columns. -
You are great!
it works! Thank you so much!