Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. PyQt6, QTableView - How can I change the column headings?
Forum Updated to NodeBB v4.3 + New Features

PyQt6, QTableView - How can I change the column headings?

Scheduled Pinned Locked Moved Unsolved Qt for Python
3 Posts 2 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    PythonQTMarlem
    wrote on last edited by
    #1

    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?

    JonBJ 1 Reply Last reply
    0
    • P PythonQTMarlem

      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?

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #2

      @PythonQTMarlem
      You do that at the model side, that is where QTableView gets its data from. You could subclass QSqlTableModel and override headerData(), or call setHeaderData() [without needing to subclass]. Examples at https://stackoverflow.com/questions/64287713/how-can-you-set-header-labels-for-qtableview-columns.

      1 Reply Last reply
      2
      • P Offline
        P Offline
        PythonQTMarlem
        wrote on last edited by
        #3

        You are great!
        it works! Thank you so much!

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved