15

If I set the horizontalHeaderVisible or verticalHeaderVisible attribute to false in Qt Designer, this works fine. But how can I enable / disable headers in my code? I've been trying something like this:

self.ui.tblContents.horizontalHeaderVisible = False
Anderson Pimentel
  • 5,086
  • 2
  • 32
  • 54
eonhelm
  • 229
  • 1
  • 4
  • 8

3 Answers3

23

You'd get the header and .hide() (or .setVisible(False):

self.ui.tblContents.horizontalHeader().hide()
# or
# self.ui.tblContents.horizontalHeader().setVisible(False)

self.ui.tblContents.verticalHeader().hide()
# or
# self.ui.tblContents.verticalHeader().setVisible(False)
Avaris
  • 35,883
  • 7
  • 81
  • 72
10

In case you want to do that using QTableWidget() for Python37 PyQt5. Here are the steps to hide both Vertical and Horizontal:

Initialize the widget, I mentioned it to make it easy on you to locate:

self.tableWidget = QTableWidget() 

the steps:

Hide Horizontal header

self.tableWidget.horizontalHeader().setVisible(False)

Hide vertical header

self.tableWidget.verticalHeader().setVisible(False)
Karam Qusai
  • 713
  • 12
  • 16
4

Thanks for this. Worked perfect for me in PyQt5.

Some screenshots for people to visualize this if confused.

Vertical ones (for row numbers) disabled:

self.tableView = QTableView()
self.tableView.verticalHeader().setVisible(False)

enter image description here

Horizontal one disabled:

self.tableView = QTableView()
self.tableView.horizontalHeader().setVisible(False)

enter image description here

With both vertical and horizontal headers disabled.

self.tableView = QTableView()
self.tableView.verticalHeader().setVisible(False)
self.tableView.horizontalHeader().setVisible(False)

enter image description here

Mike R
  • 679
  • 7
  • 13