Question
I'm using Qt4 to create a table, using the QTableWidget
class.
Problem is: I want to hide the row labels (i.e. the numbers). I just care about columns. I want to get this:
(source: ldc.usb.ve)
How can I accomplish this?
Solution
I was wondering about the same thing. However, I was too lazy to find a solution till you asked. (Thanks!!). Anyway, here is the code that worked for me:
table = QtGui.QTableWidget()
table.verticalHeader().setVisible(False)
These are actually QTableView's methods. Since you use a QTableWidget which is a child of QTableView, everything works out.
I am not sure whether this is the best way to do this, but the QHeaderView documentation recommends this method. To quote the PyQt4 docs-
Appearance
QTableWidget and QTableView create default headers. If you want the headers to be visible, you can use setVisible().
Note: Each header renders the data for each section itself, and does not rely on a delegate. As a result, calling a header's setItemDelegate() function will have no effect.
OTHER TIPS
You can also put your data in a QTableView object and hide the vertical row header with a hide() function. Here is the sample code,
QTableView *empview = new QTableView();
empview->verticalHeader()->hide();
Now you can just use method:
setHeaderHidden(true);
inherited from QTreeView. It was introduced in Qt4.4.